Automate pushing of ssh-copy-id to multiple servers

kadang suka aga aga males kalo harus masukin ssh key ke server, ya kalo 1-2 server si ga apa, gimana kalo servernya itu lebih dari 10?
udah males ngetik satu satu, plus harus masukin passwordnya pula, kalo passwordnya panjang gimana?, akhirnya scripting dikit buat mempercepet aja si sebenernya cekidot gan!

buat file ~/.ssh/config isi dengan ini
StrictHostKeyChecking no
UserKnownHostsFile=/dev/null
itu gunanya biar ga ketik yes jika keluar
The authenticity of host 'yourserver.com.sg (192.168.1.1)' can't be established.
RSA key fingerprint is 8d:e7:92:ef:86:1a:fb:4a:01:00:6a:fc:8c:23:ed:15.
Are you sure you want to continue connecting (yes/no)?
 setelah itu kita buat file dengan nama host_list yang di mana isinya adalah host/server yang ingin kita copy ssh key milik kita
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
ect..
selanjutnya kita buat bash script yang isinya menggunakan perulangan for
for i in `cat ~/host_list`;    
    do
       sshpass -p 'SERVER_PASSWD' ssh-copy-id -i .ssh/id_rsa.pub root@${i}
    done
pada for terdapat petik ` ` , petik tersebut di gunakan untuk membaca file host_list dengan menggunakan cat
pada sshpass -p 'SERVER_PASSWD' server_passwd ganti dengan password user pada server tujuan tersebut, *Sukur" passwd usernya sama ga beda beda"
jika ingin menggunakan port yang berbeda bukan port 22 maka tambahkan -p <port> pada belakang ${i}
maka nanti akan menjadi seperti ini
for i in `cat ~/host_list`;    
 do
  sshpass -p 'SERVER_PASSWD' ssh-copy-id -i .ssh/id_rsa.pub root@${i} -p <port>
 done
kemudian chmod +x file bash dan eksekusi file tersebut

sekian :D

Comments

Popular Posts