问题现象:
使用SSh连接时,出现如下面所示的错误信息,
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:SSbYdr8REewgVHCqU3AG5BMpDGE+U46Vj/242P7KTCw.
Please contact your system administrator.
Add correct host key in /home/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/.ssh/known_hosts:15
问题解决方法:
按照网上的解决方法:ssh-keygen -R ubuntu@xx.xx.xx.xx也会出现错误,如图1所示。
图 1
从网上找了另外一个解决方法:remove with:ssh-keygen -f "/home/.ssh/known_hosts" -R xx.xx.xx.xx 发现会报没有remove命令,后来更换了命令:rm with:ssh-keygen -f "/home/.ssh/known_hosts" -R xx.xx.xx.xx 发现命令有生效,并且可以正常连接上服务器。
命令注意项:
-f后面的目录一定要和报错的时候提示的目录相同。
-R 表示的删除,目的是清除你当前机器里关于你的远程服务器的缓存和公钥信息,注意是大写的字母“R”。 后面跟的是你的远程服务器的IP地址。
问题原因:
ssh连接服务器时,如果之前连接过,SSH会默认保存该IP的连接协议信息,当我们再次访问此IP服务器时,SSH会自动匹配之前保存的信息,由于我们的服务器做了更改,例如重装系统、远程服务器的SSH服务被卸载重装、SSH相关数据被删除等操作。会导致本地保存的ssh信息无效,那么再次连接时,就会出现上述错误。