本文概述
上个月, 我决定升级目前托管了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
这也应该能很好地消除警告显示在终端中。
编码愉快❤️!
评论前必须登录!
注册