SSH公開鍵を複数のLinuxホストにコピーする

SSH公開鍵を複数のLinuxホストにコピーする

中央サーバーから複数のサーバーに.ssh/id_rsa.pubをコピーしようとしています。通常、変更を他のサーバーにプッシュするために使用する次のスクリプトがあります。

#!/bin/bash


for ip in $(<IPs); do
    # Tell the remote server to start bash, but since its
    # standard input is not a TTY it will start bash in
    # noninteractive mode.
    ssh -q "$ip" bash <<-'EOF'



EOF

done

ただし、この場合はローカルサーバーから公開鍵をインポートしてから、複数のサーバーに追加する必要があります。上記の文書化されたスクリプトを使用して次のことを行う方法はありますか?

cat .ssh/id_rsa.pub |ssh [email protected] 'cat > .ssh/authorized_keys'

ベストアンサー1

この単純なループを使用すると、すべてのリモートサーバーに自動化および伝播できます。

#!/bin/bash
for ip in `cat /home/list_of_servers`; do
    ssh-copy-id -i ~/.ssh/id_rsa.pub $ip
done

おすすめ記事