注:
该脚本针对相同密码的主机
需要自定义其中的密码,IP范围,秘钥文件的位置、命名等
本人的秘钥文件都是默认位置,默认无命名,默认无加密
#!/bin/bash
. /etc/rc.d/init.d/functions
#检查秘钥文件是否存在
key_file=/root/.ssh/id_rsa.pub
pass=smg1307
if [ -f $key_file ];then
echo "秘钥文件已存在,准备分发..."
else
echo "秘钥文件不存在,创建中..." && ssh-keygen -t rsa -P ‘‘ -f /root/.ssh/id_rsa &>/dev/null 2>&1 && [ $? == 0 ] && echo "创建成功,准备分发..."
fi
#利用sshpass工具分发秘钥
for i in {11..20};do
sshpass -p "$pass" ssh-copy-id -i $key_file -o StrictHostKeyChecking=no root@10.10.10.$i &>/dev/null 2>&1
#根据退出码判断是否分发成功
if [ $? -eq 0 ];then
action "10.10.10.$i 秘钥分发成功" /bin/true
else
action "10.10.10.$i 秘钥分发失败" /bin/false
fi
done