You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Git Clone报错:/u/.ssh/known_hosts存在违规RSA密钥

解决Windows下Git Clone提示远程主机标识变更(指向/u/.ssh/known_hosts)的问题

问题原因

你的Windows环境中Git可能调用了WSL(Windows Subsystem for Linux)的SSH客户端,而非Windows原生或Git for Windows自带的SSH。这导致Git读取的是WSL系统内的/u/.ssh/known_hosts文件(该文件第6行存储了旧的远程主机密钥),而非你删除的Windows用户目录下的C:\Users\<username>.ssh\known_hosts。Ubuntu上正常是因为它直接使用本地的~/.ssh/known_hosts,不存在旧密钥冲突。

解决步骤

1. 检查Git当前使用的SSH客户端

执行以下命令查看Git配置的SSH命令:

git config --get core.sshCommand

如果输出包含WSL路径(比如/usr/bin/ssh),说明Git在调用WSL的SSH。

2. 切换为Windows原生SSH客户端

执行以下全局配置,让Git使用Windows自带的OpenSSH:

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

如果你的Git for Windows自带SSH,也可以指定其路径,比如:

git config --global core.sshCommand "C:/Program Files/Git/usr/bin/ssh.exe"

3. 清理WSL中的旧主机密钥(如果确实需要用WSL的SSH)

如果你想继续使用WSL的SSH,打开WSL终端,执行以下命令删除known_hosts中第6行的旧密钥:

sed -i '6d' ~/.ssh/known_hosts

或者直接删除整个known_hosts文件,重新克隆时会自动生成新的:

rm ~/.ssh/known_hosts

4. 临时指定SSH配置路径(单次克隆生效)

如果不想修改全局配置,可以在克隆时临时指定Windows的SSH配置文件路径:

GIT_SSH_COMMAND="ssh -F C:/Users/<username>/.ssh/config" git clone -b <branch> ssh://<host>

替换<username>为你的Windows用户名即可。

内容的提问来源于stack exchange,提问作者Rituraj Raman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 03:25:23