Linux

對腳本第一次執行的 ssh-copy-id 回答“是”?

  • December 27, 2021

第一次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 選項,您可以編寫一個腳本:

  1. 針對目標伺服器執行ssh-keyscan以獲取公鑰
  2. 將其附加到 known_hosts 文件
  3. 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 連接,無論它們是否通過腳本呼叫。

引用自:https://serverfault.com/questions/422869