Linux
對腳本第一次執行的 ssh-copy-id 回答“是”?
第一次
ssh-copy-id
會問# ssh-copy-id -i .ssh/id_dsa.pub backup@example.com The authenticity of host 'example.com (xxx.xxx.xxx.xxx)' can't be established. RSA key fingerprint is 39:fb:5e:70:30:33:2b:18:17:e9:4f:2f:91:b5:d2:21. Are you sure you want to continue connecting (yes/no)?
是否可以編寫腳本,所以腳本只會回答“是”?
如果您
ssh-copy-id
不支持 StrictHostKeyChecking 選項,您可以編寫一個腳本:
- 針對目標伺服器執行
ssh-keyscan
以獲取公鑰- 將其附加到 known_hosts 文件
- 跑
ssh-copy-id
SSH 可以選擇自動將任何主機密鑰添加到受信任的主機文件中:
ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no backup@example.com
作為替代方案,您可以執行以下操作:
echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub backup@example.com
編輯:由於這些解決方案似乎不適用於
ssh-copy-id
,因此您始終可以創建一個~/.ssh/config
包含以下選項的文件:StrictHostKeyChecking no
這應該適用於所有 SSH 連接,無論它們是否通過腳本呼叫。