远程主机标识已更改!
背景
好久没有更新的 blog ,今天更新了一篇文章,发现推送到 github 上的时候,显示了一个告警信息,导致推送失败,具体原因如下:
我是使用的ssh,跟远程仓库链接
1 | PS D:\mine-project\blog> git push |
原因
- WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- 警告:远程主机标识已更改!
此报错是由于远程的主机的公钥发生了变化导致的。
ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,如果和上次记录的不同,OpenSSH会发出警告。
解决
- 使用命令清除所连接的IP或域名
1
ssh-keygen -R XX.XX.XX.XX (或者域名)
1
2
3
4
5PS C:\Users\xiao\.ssh> ssh-keygen -R github.com
# Host github.com found: line 5
C:\Users\xiao/.ssh/known_hosts updated.
Original contents retained as C:\Users\xiao/.ssh/known_hosts.old
PS C:\Users\xiao\.ssh>
执行完这条命令,就会删除 known_hosts
文件里的关于 github.com
的记录
- 当重新链接 github.com 的主机时,会重新生成指纹,建立链接。
1
2
3
4PS D:\mine-project\blog> git push
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
打开 known_hosts
文件,可以看到以及重新添加了github
的记录
关于SSH更多请点击:常用的SSH,你了解多少?