Linux自動批量增加公鑰

自動增加公鑰

需求:

提示要輸入對方的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和密碼的自動批量祕鑰傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章