Git错误:连接到远程存储库时“主机密钥验证失败”?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我正在尝试连接到驻留在我的Web服务器上的远程Git存储库,并将它克隆到我的机器上。

我的命令使用以下格式:

git clone ssh://username@domain.com/repository.git

这对我的大多数团队成员来说都很好。通常在运行此命令之后,Git将提示用户输入密码,然后运行克隆。但是,在我的一台机器上运行时,会出现以下错误:

主机密钥验证失败。 致命:无法从远程存储库读取。

我们没有使用SSH键连接到这个存储库,所以我不知道为什么Git要在这台特定的机器上检查一个。

提问于
用户回答回答于

你正在通过SSH协议进行连接。使用SSH,每个主机都有一个密钥。客户端记住与特定地址关联的主机密钥,如果主机密钥出现更改,则拒绝连接。这样可以防止人在攻击中。

domain.com的主机键已经更改。如果你觉得这不可疑的话,可以使用以下方法从本地缓存中删除旧密钥

$ ssh-keygen -R domain.com

我强烈鼓励你考虑让用户使用密钥进行身份验证。那样的话,ssh-agent可以为了方便而存储关键材料(而不是每个人都要为每个连接输入她的密码),并且密码不会通过网络。

用户回答回答于

将GitHub添加到授权主机列表中:

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

扫码关注云+社区