注:
该脚本针对相同密码的主机
需要自定义其中的密码,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