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

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

我已经使用 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 只是与我确认并自动保存了它。现在它说我已请求严格检查,但我不知道我什么时候这样做过,也不知道在哪里重置它。

答案1

以下行:

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 艺术表示:

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 .          |
+-----------------+

理论上,你可以打印出来并保存在安全的地方。当有可疑的事情发生时,你可以有一份副本作为参考。

答案2

我只想补充一点,在听取我尊敬的 serverfaulties 同事的建议并从您的 known_hosts 文件中删除该行之前,您应该与另一端的客户服务部门联系,确保他们确实做了一些会导致此密钥更改的事情。

答案3

您需要编辑 /home/myaccount/.ssh/known_hosts 文件并删除与旧服务器的 IP 地址或主机名匹配的条目。之后,您只需像平常一样 ssh 到您的服务器,它会提示您输入新密钥并询问您是否要添加它。只需说“是”就可以了!:) 除非发生任何变化,否则它不会再询问您。

希望有所帮助。

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

[主机名或 IP 地址] [密钥类型,一般为 ssh-rsa] [此处的密钥,即 ASDFJAKj3klje35u9086095468kjflADf...]

相关内容