使用此脚本需要安装一个工具: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