公開鍵をコピーする代わりにリモートホストに接続する方法

公開鍵をコピーする代わりにリモートホストに接続する方法

公開鍵をリモートシステムに送信するために、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"

または必要に応じてsshcat >> file

< /root/.ssh/authorized_keys sshpass -p "$pass" ssh root@"$remote_host" "cat >> ~/.ssh/authorized_keys"

tee両方ともwithcatに送信される標準入力から読み取られます。違いは、追加されたコンテンツを印刷しないことです。ssh< file
tee>>

注:二重引用符が必要です。それ以外の場合は、シェルがコマンドに送信する前に>>それを~解釈します。ssh

関連情報