概述
GitHub 突然无法推送代码,报错REMOTE HOST IDENTIFICATION HAS CHANGED! 这是由于“Github官方更换了用于保护Github.com的Git操作的RSA SSH的主机密钥”导致。我们更新本地的密钥即可解决。
问题描述
今日使用git push推送代码到Github时,报错REMOTE HOST IDENTIFICATION HAS CHANGED! 详情见下图
解决方法
1、删除旧的密钥
$ ssh-keygen -R github.com
通过以上命令删除,或者手动更新 ~/.ssh/known_hosts 文件以删除旧条目。~/.ssh/known_hosts 文件中以 github.com ssh-rsa 开头的这条,上面输出日志有提升行号【Offending RSA key in /c/Users/Abel/.ssh/known_hosts:2】表示我的这个就密钥在 known_hosts 文件的第 2 行。
我使用PHPStorm的Terminal执行结果如下:
PS D:\www\gatsby\Crushers> ssh-keygen -R github.com
# Host github.com found: line 2
C:\Users\Abel/.ssh/known_hosts updated.
Original contents retained as C:\Users\Abel/.ssh/known_hosts.old
2、增加新的密钥
手动添加以下行,将新的 RSA SSH 公钥条目(大家都一样)添加到您的~/.ssh/known_hosts 文件中,密钥见:githubs-ssh-key-fingerprints
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
如果使用的是PHPStorm,再次Git push,提交时会提示SSH Confirmation (见下图),点击Yes,之后再点击确认即可提交成功。
导致该问题的原因
Github 官方发现 GitHub.com 的 RSA SSH 私钥曾短暂暴露在 GitHub 公共存储库中。
出于谨慎考虑,为了控制风险,在 UTC 时间 2023 年 3 月 24 日 05:00 左右,他们更换了用于保护 GitHub.com 的 Git 操作的 RSA SSH 主机密钥。
这样做是为了保护我们的用户免受对手冒充 GitHub 或通过 SSH 窃听他们的 Git 操作的任何机会。此密钥不授予对 GitHub 基础设施或客户数据的访问权限。
此更改仅影响使用 RSA 通过 SSH 的 Git 操作。GitHub.com 的 Web 流量和 HTTPS Git 操作不受影响。
转载请注明:半亩方塘 » 解决git push到GitHub时报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!