修复"警告:远程主机识别已更改"在Linux中的错误

时间:2020-03-21 11:48:54  来源:igfitidea点击:

试图在我的远程Ubuntu 20.04 LTS服务器中进行SSH并遇到此消息警告:远程主机识别已更改!

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

$ssh Hyman@theitroad

示例输出:

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
@    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/jEKNQCYYOilJxOZc7qAWlu4xu0nW+MD09DfJL7+gc.
Please contact your system administrator.
Add correct host key in /home/sk/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/sk/.ssh/known_hosts:11
  remove with:
  ssh-keygen -f "/home/sk/.ssh/known_hosts" -R "192.168.225.52"
ECDSA host key for 192.168.225.52 has changed and you have requested strict checking.
Host key verification failed.

这实际上不是错误消息。
它只是一个安全通知,指示给定远程系统的ECDSA主机密钥自上次连接以来已更改。
正如我们所知道的,当我们通过SSH首次访问远程系统时,通过SSH从本地系统访问该远程主机发送的ECDSA密钥的指纹,并在本地中缓存并存储在$home/.ssh/neark_hosts文件中系统。

重新安装远程系统或者为多个远程系统分配相同的IP地址后,身份(指纹)发生变化时,上述警告消息显示。

修复"警告:远程主机识别已更改"在Linux中的错误

要解决此问题,只需删除使用命令的本地系统上的IP地址的缓存密钥:

$ssh-keygen -R 192.168.225.52

示例输出:

# Host 192.168.225.52 found: line 11
/home/sk/.ssh/known_hosts updated.
Original contents retained as /home/sk/.ssh/known_hosts.old

我们还可以显式指定已知的-f标志的known_hosts文件的路径,如下面的标志。

$ssh-keygen -f "/home/sk/.ssh/known_hosts" -R "192.168.225.52"

上面的命令将删除属于本地系统的已知adjosts文件的远程主机的所有键。
此外,已知_hosts文件的旧内容将保留在名为"已知_hosts.old"的文件中。

如果使用不同的SSH端口,则需要明确提及它如下所示:

$ssh-keygen -R 192.168.225.52:1234

其中1234是SSH端口号。
用实际的SSH端口号替换它。

删除键后,请使用命令再次尝试进入远程系统:

$ssh Hyman@theitroad

键入"是"并按Enter键在本地系统中添加远程主机密钥:

The authenticity of host '192.168.225.52 (192.168.225.52)' can't be established.
ECDSA key fingerprint is SHA256:K/jEKNQCYYOilJxOZc7qAWlu4xu0nW+MD09DfJL7+gc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.225.52' (ECDSA) to the list of known hosts.
Hyman@theitroad's password:

现在我们可以通过SSH访问远程系统。