
博主一直在使用HostUS提供的VPS主机服务,昨天想在VPS上搭建一个MySQL服务器来方便程序调试。之前一直以来这个服务器都只用来提供Sock5代理服务,现在为了更加方便地安装MySQL服务器,把VPS的操作系统从CentOS换成了Debian。当然,在服务器ReBuild系统之后,需要再次配置上Sock5的代理服务,这时我尝试通过SSH与远程主机建立连接,但是出现了REMOTE HOST IDENTIFICATION HAS CHANGED!这样的报错提示,具体内容如下:
Ezreal-MacBook-Pro:~ ezreal$ ssh root@la-server.csjboke.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
SHA256:SCmYz2hmHAkng.
Please contact your system administrator.
Add correct host key in /Users/ezreal/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ezreal/.ssh/known_hosts:6
ECDSA host key for la-server.csjboke.com has changed and you have requested strict checking.
Host key verification failed.
最开始看到错误,一脸懵逼,从来没遇到过嘛!什么毛病啊,之前都可以顺利连接的啊这会儿你开始抽风了😒。由于刚开始的时候没有仔细阅读报告内容,只看见其中有一个.ssh,顿时吓着了。恰巧在几分钟之前我重新添加了Gitee(其实就是Git@OSC的新域名辣)的密钥,以为是这个导致的无法通过指纹密钥认证,于是急急忙忙地删除了git的ssh密钥,然后发现:
Ezreal-MacBook-Pro:~ ezreal$ ssh root@la-server.csjboke.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
SHA256:SCmYz2KZXqohmHAkng.
Please contact your system administrator.
Add correct host key in /Users/ezreal/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ezreal/.ssh/known_hosts:6
ECDSA host key for la-server.csjboke.com has changed and you have requested strict checking.
Host key verification failed.
问题依旧没有解决。
再次阅读错误提示,发现其实是.ssh目录下的known_hosts这个文件出现了问题。
known_hosts这个文件的作用是用于记录远程主机的指纹密钥来进行比对,由于服务器只是重新安装了操作系统,导致系统指纹密钥发生了变更,但是访问域名、root用户的密码都没有改变,这就使服务器上的指纹密钥和本地记录的指纹密钥出现了不一致,自然无法通过认证,与git的ssh密钥没有任何关系。
搞清楚了出现问题的原因,解决问题自然也就好搞了。因为我这台MBP只访问la-server.csjboke.com这一台远程服务器,所以known_hosts这个文件里面只会记录la-server.csjboke.com这一台服务器的指纹密钥,所以:
sudo rm -rf ~/.ssh/known_hosts
直接删除掉这个文件,这样当你再次发起ssh连接时,这个文件会被重建,就不会再提示REMOTE HOST IDENTIFICATION HAS CHANGED!这样的问题了。
如果你的电脑需要访问多台远程主机,为了避免对其他密钥的影响,你只需要打开这个文件,然后删除掉出现问题的那一条密钥信息,即可重新正常地建立SSH连接。
原创文章,转载请在醒目位置注明出处链接