情景:
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
刪掉即可。 由.開頭的文件是隱藏文件。