15

此处继续问题:我正在尝试在 GitHub 上设置我的第一个 Git 存储库。(注意,这意味着我不能使用腻子,我正在使用 openssh,或者至少我应该使用并且我认为我是)。我一直在关注 GitHub 网站上的文档。直到最后一个命令: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,所以任何帮助都将不胜感激!

4

5 回答 5

15

使用 git-for-windows 和 GIT_SSH 指向 plink.exe,打开服务器的 putty 并接受主机密钥(然后终止 putty 会话,甚至不继续登录)就足以为我解决这个问题。

于 2012-06-20T12:47:35.120 回答
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/

于 2012-04-16T06:09:43.583 回答
6

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

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

于 2012-04-17T14:40:16.977 回答
2

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

Putty 将其 SSH 已知主机存储在注册表项中,而不是像 SSH 那样存储在 ~/.ssh/known_hosts 文件中。因此,要使 Git 与 PLink 和 Pagent 一起工作,您只需在远程 Git 服务器上启动一个 Putty 会话,并接受密钥。这样,您将不会再次收到该消息。

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

于 2012-07-02T20:20:32.057 回答
0

这对我有用:

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

一旦确认,git就不再问了。

于 2020-06-19T08:39:59.827 回答