使用 SSH 或 rsync 連線新主機時,會出現主機金鑰驗證提示,需手動輸入 yes,導致自動化腳本中斷。本文提供兩種移除提示的方法,適用於內網受信任環境。
ssh -o StrictHostKeyChecking=no user@192.168.x.x
同理適用於 rsync、scp 等工具。
編輯 /etc/ssh/ssh_config(全域)或 ~/.ssh/config(用戶級),加入:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
重啟 sshd 服務:
service sshd restart
# 或 systemctl restart sshd
StrictHostKeyChecking no:自動接受未知主機金鑰,不提示。UserKnownHostsFile /dev/null:不寫入 known_hosts,避免下次仍提示(因金鑰變動)。此設定會關閉中間人攻擊防護,**僅限內網完全受信任的主機間使用**。對外網連線請保持預設驗證。
若遇到 Host key verification failed,同樣與 StrictHostKeyChecking 設定有關,上述方法可同時解決。
