我一直在使用 ssh 登录我租用了几年的远程服务器。上周我收到他们的消息说他们升级了我的帐户和服务器。现在当我登录时,我从 ssh 收到这条消息
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.
现在,我假设这是由我的主机升级我的服务器触发的。所以我想再次信任这个网站。但我不太明白怎么做。
我查看了 known_hosts 并且所有那里都有公钥。但我不知道其中哪些来自这个特定服务器的旧版本。我也不知道如何为主机获取正确的密钥;上次我联系的时候,我想ssh只是和我确认并自动保存了它。现在它说我已要求严格检查,但我不知道我何时执行此操作或在何处重置它。
该行:
表示旧密钥位于 known_hosts 文件的第 7 行。使用您最喜欢的编辑器删除第 7 行。这应该可以让它消失。
您还可以使用 ssh-keygen -R 删除条目:
仅供参考,这些不是公钥,而是主机的散列表示。
您可以列出已知的主机文件:
然后它将显示密钥和 ascii 艺术表示:
从理论上讲,您可以将其打印出来并将其保存在安全的地方。当发生可疑情况时,您有一份副本供参考。
我要补充一点,在听取我尊敬的服务器故障同事的建议并从您的 known_hosts 文件中删除该行之前,您应该与另一端的客户服务交谈,并确保他们确实做了会导致此密钥的事情改变。
您需要编辑 /home/myaccount/.ssh/known_hosts 文件并删除与旧服务器的 IP 地址或主机名匹配的条目。之后,您应该像往常一样 ssh 到您的服务器,它会提示您输入一个新密钥并询问您是否要添加它。只需说“是”,就是这样!:) 它不应该再问你,除非有什么改变。
希望有帮助。
编辑:您 known_hosts 条目很可能看起来像这样
[主机名或IP地址] [keytype,一般是ssh-rsa] [这里的key,即ASDFJAKj3klje35u9086095468kjflADf...]