ssh“警告:远程主机标识已更改!”

我一直在使用SSHlogin到我租用了几年的远程服务器。 上周我收到他们的消息,说他们升级了我的账户和服务器。 现在当我login时,我从ssh得到这个消息

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: POSSIBLE DNS SPOOFING DETECTED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ The RSA host key for mydomain.com has changed, and the key for the corresponding IP address XXXX 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只是和我确认并自动保存了。 现在说我已经要求严格检查了,但是我不知道什么时候做了这个或者重新设置。

该行:

 Offending key in /home/myaccount/.ssh/known_hosts:7 

表示旧密钥位于known_hosts文件的第7行。 使用你最喜欢的编辑器删除第7行。这应该让它消失。

您也可以使用ssh-keygen -R删除一个条目:

 # ssh-keygen -R hostname -f ~/.ssh/known_hosts 

仅供参考,这些不是公钥,而是主机的散列表示。

您可以列出已知的主机文件:

 $ ssh-keygen -lv -f ~/.ssh/known_hosts 

它将显示关键和ASCII艺术performanceforms:

 2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA) +--[ RSA 2048]----+ | | | . | | = | |o * . | |o= o S | |+ . + | |..o. o . | |..++.o . . | |E. *B . | +-----------------+ 

从理论上讲,你打印出来并保存在一个安全的地方。 当有可疑的事情时,你有一个副本供参考。

我只是补充说,在采取我尊敬的同事serverfaulties的build议,并删除known_hosts文件的行,你应该与另一端的客户服务,并确保他们做了一些事情,会导致这个关键更改。

您需要编辑/home/myaccount/.ssh/known_hosts文件,并删除与旧服务器的IP地址或主机名匹配的条目。 之后,你应该像往常一样ssh到你的服务器,它会提示你一个新的密钥,并询问是否要添加它。 简单的说'是'就是这样! :)它不应该再问你,除非有所改变。

希望有所帮助。

编辑:你的known_hosts条目很可能看起来像这样

[主机名或IP地址] [keytype,一般是ssh-rsa] [这里是关键字,即ASDFJAKj3klje35u9086095468kjflADf …]