1. 程式人生 > >ssh批量處理免密登陸

ssh批量處理免密登陸

ech ansible clean 執行權 test 進入 config set sshpass

使用此腳本需要安裝一個工具:sshpass

步驟:
1、先將該安裝包上傳到服務器上
2、解壓
tar -xvf sshpass-1.05.tar.gz

3、進入
cd sshpass-1.05

4、編譯安裝
./configure
make
make check #這是檢測編譯是否有誤,如果沒有提示信息就證明編譯成功
make install
#說明:該軟件具有卸載功能,可直接在該目錄中執行make clean 可自動卸載

5、可以使用sshpass命令了

#使用前請先將存放IP地址和密碼的文件以如下格式存放
172.100.0.1:test1
172.100.0.2:test2

#IP地址和密碼之間用":"號隔開,如果IP與密碼之間是用空格間隔請使用如下命令進行更改:sed -i.bak ‘s/ /:/g‘ pass.txt 原有的文件會以.bak結尾的文件保存備份,執行之前確保該文件除了IP與密碼之間其他地方不要有空格

將該腳本上傳到服務器後記得添加執行權限: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與密碼之間其他地方不要有空格

A=awk ‘{print $1}‘ /srv/ansible/jiaoben/pass.txt
B=echo $A

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

ssh批量處理免密登陸