寫的自動化測試用例在服務器上運行,第一次是ok的,但是第二次及之后就會報“REMOTE HOST IDENTIFICATION HAS CHANGED! ”的錯誤。
我們可以刪除~/.ssh/known_hosts 文件中對應IP的那行記錄。 window中使用git-bash也會遇到同樣的問題,刪除C盤用戶目錄下的known_hosts 對應的記錄即可。
我是使用的python的ssh client來連接服務器執行一些指令。會在known_hosts 中生成下面的記錄:
[xxx.xxx.xxx.xxx:3123] xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
可以使用ssh-keygen -R 192.168.1.10來刪除指定的記錄。需要注意切換到對應的用戶。
帶端口號的要使用ssh-keygen -R [192.168.1.10:3123]的格式來執行。
ssh會把你每個你訪問過計算機的公鑰(public key)都記錄在~/.ssh/known_hosts。當下次訪問相同計算機時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告,避免受到攻擊。