个性化阅读
专注于IT技术分析

如何修复SSH主机密钥验证失败,警告:Ubuntu 18.04中的远程主机标识已更改

本文概述

上个月, 我决定升级目前托管了Our Code World的服务器, 以提供真正更好的服务器。像往常一样, 我购买了新服务器并开始配置它, 以便迁移旧服务器数据。过了一会儿, 我去了他们网站上服务器的管理面板, 以删除旧的根密钥文件, 我注意到服务器所在的数据中心不在美国, 而是在法国。选择的数据中心是错误的, 因此我要求在美国购买新服务器。部署后, 我安装了新的操作系统, 但安装了错误版本的Ubuntu(16而不是18.04), 所以我再次擦除了服务器?。最终检查完我安装了正确版本的Ubuntu的所有内容之后, 我尝试通过SSH访问服务器, 再次让我感到惊讶的是, 我遇到了另一个错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:5
RSA host key for [192.xxx.xx.xx]:22 has changed and you have requested strict checking.
Host key verification failed.

造成此问题的原因是, 你正在连接到以前连接过的服务器, 但是自上次连接以来其RSA主机已更改(我使用Ubuntu 16.04连接到服务器的第一个版本, 然后尝试连接到该服务器)与Ubuntu 18.04相同的服务器, 但出现异常)。为了防止任何安全漏洞, 你需要从本地计算机的known_hosts文件中删除此密钥, 以便正确连接。

A.手动删除有问题的密钥

好了, 只要你不必担心每次连接到某个服务器时都必须确认指纹有效, 则删除known_hosts文件是一种有效的解决方案, 因此不要删除known_hosts文件。最简单的解决方案是简单地删除文件中有问题的行, 在本例中, 异常消息警告我们有问题的密钥在第5行中:

Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:5

因此, 你只需要使用以下单个命令删除该行(用行号替换5):

sed -i '5d' ~/.ssh/known_hosts

就是这样。或者, 使用诸如nano或vim之类的终端编辑器来修改known_hosts文件, 并自行删除该行。

B.使用ssh-agent

另外, 如果你知道主机名/ ip, 则可以使用ssh-keygen工具简单地删除有问题的密钥:

ssh-keygen -R <SERVER_IP_OR_HOSTNAME> -f ~/.ssh/known_hosts

这也应该能很好地消除警告显示在终端中。

编码愉快❤️!

赞(0)
未经允许不得转载:srcmini » 如何修复SSH主机密钥验证失败,警告:Ubuntu 18.04中的远程主机标识已更改

评论 抢沙发

评论前必须登录!