在通过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 ED25519 key sent by the remote host is SHA256:9+zR+FGrWlr6iFhhMuzkMmUndfXkWToEgRn0Z8hBP6M. Please contact your system administrator. Add correct host key in C:\\Users\\UserName/.ssh/known_hosts to get rid of this message. Offending ECDSA key in C:\\Users\\UserName/.ssh/known_hosts:10 Host key for 110.1.2.1 has changed and you have requested strict checking. Host key verification failed.
这个错误表示远程服务器的主机密钥与您先前连接时保存的密钥不匹配。原因可能是服务器的密钥确实发生了更改(例如服务器被重新安装或SSH配置被更改),也可能存在安全风险(例如中间人攻击)。为了安全起见,SSH
默认会阻止连接,直到问题解决。
如何解决这个问题?
1. 删除旧的主机密钥
首先,我们需要从known_hosts
文件中删除旧的主机密钥。错误信息中指出问题出在C:\\Users\\UserName/.ssh/known_hosts
文件的第10行。你可以使用以下命令来删除对应IP地址的主机密钥:
ssh-keygen -R 110.1.2.1
这条命令会从known_hosts
文件中删除与此IP地址相关的密钥。
2. 添加新的主机密钥
删除旧的密钥后,再次尝试通过SSH连接服务器:
ssh root@110.1.2.1
系统会提示你确认新的主机密钥,输入yes以接受新的密钥并将其添加到known_hosts
文件中。
3. 验证更改
如果你怀疑主机密钥的更改可能是潜在的安全风险(例如服务器可能被入侵),请立即联系服务器管理员以验证此更改是否预期发生。在确认新的主机密钥是合法的后,您就可以安全地连接到服务器了。
SSH
显示REMOTE HOST IDENTIFICATION HAS CHANGED!
警告时,表明主机密钥已更改或者可能存在安全风险。为了解决这个问题,你需要从known_hosts
文件中删除旧的主机密钥并添加新的密钥。如果不确定主机密钥的变化原因,最好联系服务器管理员以确保安全。这样处理完后,你就可以再次安全地通过SSH连接到远程服务器。