Linux ssh 遠程登陸到其餘機器上時,有時會出現登不進去,並彈出以下相似提示的狀況:安全
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@服務器
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
ssh
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@this
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 is36:68:a6:e6:43:34:6b:82:d7:f4:df:1f:c2:e7:37:cc.Please contact your system administrator.Add correct host key in /u/xlian008/.ssh/known_hosts to get rid of this message.Offending key in /u/xlian008/.ssh/known_hosts:2RSA host key for 135.1.35.130 has changed and you have requested strict checking.Host key verification failed.spa
通過研究發現,ssh會把每一個你訪問過計算機的公鑰(public key)都記錄在本地~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會覈對公鑰。若是公鑰不一樣,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。ip
緣由:一臺主機上有多個Linux系統,會常常切換,那麼這些系統使用同一ip,登陸過一次後就會把ssh信息記錄在本地的~/.ssh/known_hsots文件中,切換該系統後再用ssh訪問這臺主機就會出現衝突警告。rem
解決方案: (兩個)get
1. 手動刪除修改known_hsots裏面的內容;【建議這個】
2. 修改配置文件「~/.ssh/config」,加上這兩行,重啓服務器。
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
優缺點:
1. 須要每次手動刪除文件內容,一些自動化腳本的沒法運行(在SSH登錄時失敗),可是安全性高;
自動化
2. SSH登錄時會忽略known_hsots的訪問,可是安全性低;io