web-dev-qa-db-ja.com

スクリプトによって初めて実行されるssh-copy-idに「はい」と答えますか?

初めて ssh-copy-id尋ねます

# ssh-copy-id -i .ssh/id_dsa.pub [email protected]
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)? 

これをスクリプト化することは可能ですか?スクリプトは単にyesと答えますか?

8
Sandra

ssh-copy-idがStrictHostKeyCheckingオプションをサポートしていない場合は、次のことを行うスクリプトを記述できます。

  1. ターゲットサーバーに対してssh-keyscanを実行して、公開鍵を取得します
  2. それをknown_hostsファイルに追加します
  3. ssh-copy-idを実行します
6
cjc

SSHには、信頼できるホストファイルにホストキーを自動的に追加するオプションがあります。

ssh-copy-id -i .ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected]

別の方法として、次のことを行うことができます。

echo "yes \n" | ssh-copy-id -i .ssh/id_dsa.pub [email protected]

編集:これらのソリューションはssh-copy-idでは機能しないようですので、次のオプションを使用して~/.ssh/configファイルをいつでも作成できます。

StrictHostKeyChecking no

これは、スクリプトから呼び出されたかどうかに関係なく、すべてのSSH接続で機能します。

8
brain99

これを試して:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -y

ホストキーはknown_hostsファイルに追加されませんが、公開キーを目的のauthorized_keysにコピー(または追加)することができます(これが唯一の目的である場合)。

0
Abhay Tiwari