报错详情
在命令行中通过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 a host key has just been changed.
报错原因
首先对报错进行翻译
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
翻译过来就是,警告:远程主机标识已更改!
ssh服务通过公钥和私钥进行连接认证,会把每一个计算机/服务器访问过的公钥记录到~/.ssh/known_hosts
中,当下一次访问时,ssh自动核对公钥,如果记录不同,那么OpenSSH会发出警告!
那么问题来了,我2020年12月份初的时候重新装过一次Ubuntu系统服务器,于是就“顺理成章”地连接失败。
加粗的题外话(滑稽.jpg):欢迎访问系统崩塌再修复的个人站点:MRX空间站
解决方案
我看到有一种方案是通过vim
命令删除.ssh/known_hosts
中的相关rsa
信息,于是下次连接就不会出现认证失败的现象了。
补充:在Linux系统中连接可以用命令删除.ssh/known_hosts信息。在windows系统中连接则直接找到./ssh/known_hosts文件,右键删除即可!
但是我感觉我采用的方法更直接,通过key生成的方式进行更新,详情如下。
在命令行输入ssh-keygen -R ip(Linux服务器公网ip地址)
显示.ssh/known_hosts updated.
我们跟着指令继续连接服务器。
最后通过ssh user@ip
+password
成功连接到远程服务器上。
另外,在Linux系统的远程连接中遇到这种情况,报错会出现提示命令,复制粘贴执行即可实现key的更新操作。