公開鍵をリモートシステムに送信するために、bashスクリプトで次のcliを使用しました。
sshpass -p $pass scp /root/.ssh/authorized_keys root@$remote_host:~/.ssh/authorized_keys
しかし、私たちは他のホストの公開鍵を添付したいので、最上位の添付方法を探しています。
Bashでは">>"を使用するオプションがあることを知っていますが、私の方法を使用してどのように追加しますか?
それとも別の解決策がありますか?
答え1
ssh-copy-id
必要な操作を正確に実行するツールを使用することもできます。つまり、リモートシステムのAuthorized_keysに1つ以上のキーを追加できます。
答え2
ssh
次のように使用しますtee -a file
。
< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "tee -a ~/.ssh/authorized_keys"
または必要に応じてssh
:cat >> file
< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "cat >> ~/.ssh/authorized_keys"
tee
両方ともwithcat
に送信される標準入力から読み取られます。違いは、追加されたコンテンツを印刷しないことです。ssh
< file
tee
>>
注:二重引用符が必要です。それ以外の場合は、シェルがコマンドに送信する前に>>
それを~
解釈します。ssh