使用此腳本須要安裝一個工具:sshpassbash
步驟:
一、先將該安裝包上傳到服務器上
二、解壓
tar -xvf sshpass-1.05.tar.gz服務器
三、進入
cd sshpass-1.05ssh
四、編譯安裝
./configure
make
make check #這是檢測編譯是否有誤,若是沒有提示信息就證實編譯成功
make install
#說明:該軟件具備卸載功能,可直接在該目錄中執行make clean 可自動卸載ide
五、能夠使用sshpass命令了工具
#使用前請先將存放IP地址和密碼的文件以以下格式存放
172.100.0.1:test1
172.100.0.2:test2code
#IP地址和密碼之間用":"號隔開,若是IP與密碼之間是用空格間隔請使用以下命令進行更改:sed -i.bak 's/ /:/g' pass.txt 原有的文件會以.bak結尾的文件保存備份,執行以前確保該文件除了IP與密碼之間其餘地方不要有空格it
將該腳本上傳到服務器後記得添加執行權限:chmod a+x sshautopass.sh編譯
腳本以下:
#!/bin/bash
#使用前請先將存放IP地址和密碼的文件以以下格式存放
#172.100.0.1:test1
#172.100.0.2:test2
#IP地址和密碼之間用":"號隔開,若是IP與密碼之間是用空格間隔請使用以下命令進行更改:sed -i.bak 's/ /:/g' pass.txt 原有的文件會以.bak結尾的文件保存備份,執行以前確保該文件除了IP與密碼之間其餘地方不要有空格class
A=awk '{print $1}' /srv/ansible/jiaoben/pass.txt
B=echo $A
test
for key in $B; do
IP=echo $key |cut -d : -f1
pass=echo $key |cut -d : -f2
cat /root/.ssh/id_rsa.pub | /usr/local/bin/sshpass -p $pass ssh -o "StrictHostKeyChecking no" -p 22 $IP "mkdir -p /root/.ssh;cat >> /root/.ssh/authorized_keys" &> /dev/null
done
unset A B IP pass