Saya mencoba menyalin .ssh / id_rsa.pub dari server pusat kami ke beberapa server. Saya memiliki skrip berikut yang biasanya saya gunakan untuk mendorong perubahan ke server yang berbeda.
#!/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
Tetapi dalam kasus ini, saya perlu menggunakan kunci publik di server lokal dan kemudian menambahkannya ke beberapa server. Apakah ada cara dengan menggunakan skrip dokumen di atas untuk menjalankan yang berikut ini.
cat .ssh/id_rsa.pub |ssh tony@0.0.0.0 'cat > .ssh/authorized_keys'
shell-script
ssh
pengguna67186
sumber
sumber
Jawaban:
Dengan loop sederhana ini Anda dapat mengotomatiskannya dan menyebar ke semua server jarak jauh.
sumber
Berikut ini adalah skrip sederhana saya untuk menyalin ssh-keygen ke beberapa server tanpa meminta kata sandi setiap kali.
sumber
Jawaban yang diterima tidak akan berfungsi jika seseorang perlu memasukkan kunci publik orang lain ke beberapa mesin. Jadi, saya datang dengan solusi berikut:
cat add-vassal-tc-agents.sh
Skrip ini menambahkan kunci baru kepada pengguna pada daftar mesin, asalkan lingkungan yang dijalankan memiliki akses.
Contoh dari
tc-agents-list.txt
:sumber
Untuk menyalin kunci publik Anda, Anda memiliki sesuatu yang built-in di openssh itu sendiri. Jadi alih-alih
cat
danssh
gunakan ini: -sumber
Anda dapat melakukan ini dengan loop sementara sederhana dan daftar server tertanam seperti ini:
Memiliki daftar di dalam skrip tidak menghilangkan file data terpisah yang dapat salah tempat.
sumber
ssh-copy-id
telah disarankan dalam beberapa jawaban lain.Dengan asumsi Anda memiliki file dengan daftar IP server, nama SERVER, dan hanya alamat IP dari server yang ditentukan.
Ini untuk loop juga akan berfungsi.
sumber