Git服务器的主机密钥未缓存在注册表中 - GitHub.com

时间:2012-04-15 21:14:45

标签: git bash ssh github

问题的延续here : 我正在尝试在GitHub上设置我的第一个Git存储库。 (注意,这意味着我不能使用putty,我正在使用openssh,或者至少我应该这样,而且我认为我是)。我一直在关注GitHub网站here上的文档。直到最后一个命令:git push -u origin master,我才能完成所有工作。它给了我以下错误:

The server's host key is not cached in the registry.
You have no guarantee that the server is the computer you think it is.
The server's rsa2 key fingerprint is: ssh-rsa 2048
16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
Connection abandoned. fatal: The remote end hung up unexpectedly

我猜这意味着在我的known_hosts文件中找不到他们的ssh-rsa密钥,但我不知道如何解决这个问题。我试过ssh -T git@github.com并且我登录就好了。我也尝试关闭git bash并重新打开,以防它出现缓存问题。这不能解决问题。这是我得到的唯一输出与文档指示的不同。我希望建立一个甜蜜的Java Helper Library,所以任何帮助都会非常感激!

5 个答案:

答案 0 :(得分:15)

使用git-for-windows和GIT_SSH指向plink.exe,打开一个putty到服务器并接受主机密钥(然后杀死putty会话,甚至没有继续登录)足以解决这个问题我

答案 1 :(得分:6)

在Windows上,有时您似乎无法真正接受服务器的主机密钥。

从Power Shell中尝试以下命令之一:

ssh github.com

或者

plink.exe -agent github.com

运行这些独立版,并在要求接受主机密钥时按y

使用ssh-add将您的私钥添加到当前的Power Shell会话中:

C:> ssh-add PATH\TO\PRIVATE\KEY

之后,您应该能够成功运行git push

来源:http://help.github.com/ssh-issues/

答案 2 :(得分:6)

理想的解决方案是(如果你真的不需要在git中使用plink)删除GIT_SSH环境变量并在Git Bash上使用命令ssh-keygen -t rsa -C "youremail"生成新的密钥对,然后在github中更改你的ssh密钥,因为从我从评论中理解的是putty和openssh是冲突的。

但是,如果您仍想使用plink,您可以使用PuTTYgen生成PuTTY格式密钥然后在github中更改您的公钥并在PuTTYagent中加载您的私钥然后您应该使用PuTTY连接到github.com这将将githubs指纹添加到known_hosts,你就可以了。这将是github与PuTTY http://nathanj.github.com/gitguide/tour.html

的资源

答案 3 :(得分:2)

将信息添加到@Name的帖子(为了完整性),因为我今天(再次)这个问题。

Putty存储其SSH已知主机in a registry key,而不是像SSH这样的〜/ .ssh / known_hosts文件。因此,要使Git与PLink和Pagent一起工作,您只需要在远程Git服务器上启动Putty会话,并接受密钥。这样,您就不会再收到该消息了。

这是令人不安的,因为你必须接受两次SSH密钥:一个用于SSH服务器,一个用于Putty / Plink / Pagent,但是一旦你这样做,它就像一个魅力。

答案 4 :(得分:0)

这对我有用:

我在这里验证了github指纹: https://help.github.com/en/github/authenticating-to-github/githubs-ssh-key-fingerprints

一旦认罪,git不再询问。