情景:
1.腾讯云上买了一台linux服务器,然后本机使用ssh密钥登录过。
2.过年的时候抢票,自己没有服务器资源,然后把腾讯云服务器重装系统成windows系统去抢票。
3.抢票完之后,又把windows系统装回linux系统,还是使用的原来那份密钥。
4.这时候本机再使用ssh密钥登录,问题就来了。问题如下图
这时报错信息为:
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
分析:这是由于每次本机使用ssh登录的时候,ssh会在本地~/.ssh/known_hosts记录你访问的计算机的公钥,如果再次访问该ip,会核对公钥,如果公钥不同,就会报上述的警告信息。
解决,第一步,查看~/.ssh/known_hosts目录,指令:
cat ~/.ssh/known_hosts
结果如下图:
发现倒数第二行就是我要登录ip的信息,这时候把这一行记录删掉即可。
第二步:把改行记录删掉,然后重试,发现问题解决,如图,已经顺利连接上去,指令,进入编辑器,insert进去,删除指定行,按Esc键,输入:wq!保存并退出。
vi ~/.ssh/known_hosts
最后,尝试登录linux服务器,发现已经顺利登录进去。
这时候再查看known_lists,发现最底下多了一行记录,但是公钥与之前的不同
至此,问题解决。
另外,在操作vi修改文件时,由于中途异常退出,可能再次重新编辑会出现如下情况:
原因是在此次vi或vim操作前有过一次使用vi或vim 操作known_hosts文件时出现了异常中断,所以在当前目录下产生了一个.known_hosts.swp文件
使用指令:
rm ~/.ssh/.known_hosts.swp
删掉即可。 由.开头的文件是隐藏文件。