github 解决推拉代码提示 REMOTE HOST IDENTIFICATION HAS CHANGED 失败

1. 背景
在拉取github上一个新项目的时候爆出 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
第一反应是电脑被黑了,传说中的中间人攻击(题外话一下,其实所有的代理软件都算是中间人哦~),稍微检查了一下,应该不是。仔细看内容,有点意思。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s.
Please contact your system administrator.
Add correct host key in /c/Users/lindexi/.ssh/known_hosts to get rid of this message.
Offending RSA key in /c/Users/lindexi/.ssh/known_hosts:2
Host key for github.com has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

法1:

 ssh-keygen -R github.com
  • 命令行删除旧的github公钥 ssh-keygen -R github.com
  • 然后直接继续拉代码就行了,需要重新信任一下github的fingerprint

法2:

最简单的方式就是删除上面提到的 known_hosts 文件,例如我的文件是 /c/Users/lindexi/.ssh/known_hosts 路径,直接使用 rm 命令删除,代码如下

rm /c/Users/lindexi/.ssh/known_hosts

还请在你电脑上执行以上命令的时候,替换为你自己的电脑上的路径

The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?

执行完成之后,重新推拉代码,可以看到提示信息,只需要输入 yes 回车即可

以上步骤就是在将 github 添加到 known_hosts 文件里

也就是下一次推拉代码就不需要再次执行以上步骤

为什么有这样的事情呢?这是因为在 2023.03.24 更换了 GitHub 的 RSA 的 Key 值。因为 GitHub 团队发现自己的 Key 泄露了。

详细请看 We updated our RSA SSH host key The GitHub Blog

 

posted @ 2024-05-27 15:09  陈晓猛  阅读(128)  评论(0编辑  收藏  举报