ssh 公鑰檢查是 ssh 通道協定內一向重要的機制,可以防範在 ssh 溝通的過程中避免第三方 hacker attack,但這對於需要依賴 ssh 協定的 script 會造成中斷的狀況
每當 ssh 連線後會將連線成功的公鑰儲存在 ~/.ssh/known_hosts,若是不存在將會提示使用者是否信任該主機,若是信任將自動加入到 known_hosts,下次連線就會直接採用此公鑰對應,不會再詢問,除非該主機公鑰改變
The authenticity of host 'IP' can't be established. RSA key fingerprint is SHA256:WhCPSyNJbVlDQFOQx2lK/ic3GyHgTVR+DZcSYc. Are you sure you want to continue connecting (yes/no)?
針對的這樣的狀況可以有兩種方式不驗證公鑰
solution.1(建議) 使用 -o StrictHostKeyChecking=no 參數
$ ssh -o StrictHostKeyChecking=no 192.168.0.110
solution.2 從 ssh_config 關閉公鑰驗證
$ vim /etc/ssh/ssh_config Host * StrictHostKeyChecking no $ service sshd restart
小弟在這邊建議的方式是有需要才加入 StrictHostKeyChecking 參數關閉驗證公鑰,如果直接從服務就關閉公鑰驗證,那就真的沒有安全性可言了啊!!