一、什麼是known_hosts文件
A通過ssh首次連接到B,B會將公鑰1(host key)傳遞給A,A將公鑰1存入known_hosts文件中,以後A再連接B時,B依然會傳遞給A一個公鑰2,OpenSSH會覈對公鑰,通過對比公鑰1與公鑰2 是否相同來進行簡單的驗證,如果公鑰不同,OpenSSH會發出警告, 避免你受到DNS Hijack之類的攻擊。。
二、打開known_hosts文件
vi ~/.ssh/known_hosts 或 vi /root/.ssh/known_hosts
host文件內容格式:ip 公鑰
三、A通過ssh登陸B時提示 Host key verification failed.
原因:A的known_hosts文件中記錄的B的公鑰1 與 連接時B傳過來的公鑰2不匹配
解決方法:
- 方法一:刪除A的known_hosts文件中記錄的B的公鑰(手動進行,不適用於自動化部署情形)
- 方法二:修改配置文件,在ssh登陸時不通過known_hosts文件進行驗證(安全性有所降低),修改完需重啓機器
vi ~/.ssh/config //編輯配置文件
添加以下兩行代碼:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null