中央サーバーから複数のサーバーに.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