今天,当我尝试使用 SSH 从我的 Linux 笔记本电脑登录到 Linux 服务器时,收到了错误消息:
警告:远程主机标识已更改!
由于我没有更改机器密钥,所以我做了一个ssh -v
查看会发生什么的情况。我发现我的 OpenSSH 客户端 (SSH-2.0-OpenSSH_7.2p2) 接受“主机密钥算法:ecdsa-sha2-nistp256”,而在我的 known_hosts 中有一个rsa-key
用于相应服务器的密钥(到今天为止都运行良好...)。
唯一可能改变的是 OpenSSH 版本。
我如何让 OpenSSH 再次询问 RSA 主机密钥?
PS:错误信息和前面几行按要求提供:
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:k/ADO4oeYIUNdsGBEkKXkggNP5pr3t9QlYSr8GOLSd1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:k/ADO4oeYIUNdsGBEkKXkggNP5pr3t9QlYSr8GOLSd1.
Please contact your system administrator.
Add correct host key in /home/nn/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/nn/.ssh/known_hosts:51
remove with:
ssh-keygen -f "/home/nn/.ssh/known_hosts" -R server31
ECDSA host key for server31 has changed and you have requested strict checking.
Host key verification failed.
答案1
您可以使用选项请求特定的主机密钥算法HostKeyAlgorithms
。在 RSA 的 CLI 中:
ssh -o HostKeyAlgorithms=ssh-rsa <server>
或者在~/.ssh/config
具体Host
部分下:
HostKeyAlgorithms=ssh-rsa