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


8

初めて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)? 

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


回答:


6

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

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

8

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接続で機能します。


1
悲しいことに動作せず、ssh-copy-id動作しません-o
サンドラ

奇妙なことに、発行時に切り替えが報告されるssh-copy-id -?
brain99 '30

1
@sandra ssh-copy-idはスクリプトです。これを変更して-o StrictHostKeyChecking=no、ssh_configファイルでそのパラメーターを追加または無効にすることができます。
ewwhite 2012

また、キーの場所を指定する必要はありません... ssh-copy-id servername正常に動作します。
ewwhite 2012

sudo sed -i.bak 's/ssh \$/ssh -o StrictHostKeyChecking=no \$/' $(which ssh-copy-id)
クォンタム2012

0

これを試して:

ssh-copy-id -i ~/.ssh/id_rsa.pub user@example.com -y

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


-yオプションはありません
ImranRazaKhan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.