繁体   English   中英

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

[英]Git server's host key not cached in registry - GitHub.com

问题的延续在这里:我试图建立在GitHub上我的第一个Git仓库。 (注意,这意味着我不能使用腻子,我正在使用 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 库,所以任何帮助将不胜感激!

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

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

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

ssh github.com

要么

plink.exe -agent github.com

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

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

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

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

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

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

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

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

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

这令人不安,因为您必须接受两次 SSH 密钥:一次用于对服务器进行 SSH 连接,一次用于 Putty/Plink/Pagent,但是一旦您接受了它,它就像一个魅力。

这对我有用:

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

一旦确认,git就没有再问。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM