自動增加公鑰
需求:
提示要輸入對方的ip和root密碼,然後可以自動把本機的公鑰增加到對方機器上,從而實現密鑰認證。
1.在使用之前,先安裝epel源,yum install expect -y
2.寫分發腳本,後綴爲exp
#!/usr/bin/expect#!/bin/bash
#name:南宮乘風
#email:[email protected]
#自動添加公鑰到指定的服務器
set host_ip [lindex $argv 0]
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $host_ip
expect {
-timeout 60
"(yes/no)?" { send "yes\n";exp_continue}
"password:" { send "root\n"} #填寫服務器的同一密碼
timeout {puts "Connect timeout!";return}
}
expect eof
exit -onexit {
send_user "Job has finished!"
}
注:set的作用是設置變量,spawn設置執行命令時,可以引用變量;變量的第一個參數爲0
編寫ip.txt,存放ip地址
3.執行以下命令開始分發
for ip in `cat /root/ip.txt`;do expect /root/ssh.exp $ip ;done
如果密碼不一樣,也可以定義到ip.txt的文本里面,通過awk獲取到。
然後傳值給expect。可以實現不同ip和密碼的自動批量祕鑰傳輸。