批量分发密钥脚本
批量分发秘钥
改良版1.1
#!/bin/bash #前提请把公钥默认创建完成 #例 ssh-keygen --- 一路回车 # yum install sshpass -y 先执行 cat<<eof ******************************************** 注:yum install sshpass -y 先执行 请输入你的网段,查看可用IP地址. 例:10.0.0. 请耐心等待! ******************************************* eof read -p "Please enter the network segment where you want to distribute the secret keys : " ip read -s -p "Please enter your local password :" pass echo $ip | grep -Ex '(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9]).((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){2}' &> /dev/null check=$? sleep 3 if [ $check -eq 0 ]; then for i in ${ip}{1..255} do { ping -c 1 $i &> /dev/null if [ $? -ne 0 ]; then echo $i &> /dev/null else . /etc/init.d/functions timeout 5 sshpass -p$pass ssh-copy-id -f -i ~/.ssh/id_rsa.pub root@$i -o StrictHostKeyChecking=no &> /dev/null if [ $? -eq 0 ] then action "主机 $i" /bin/true echo "" else action "主机 $i" /bin/false echo "" fi fi }& done else echo "当前仅支持ipv4格式且是十进制,请重新输入" fi wait echo "结束"
改良版1.0
#!/bin/bash for i in `cat /etc/ansible/ip.txt` do { ping -c 1 $i &>/dev/null if [ $? -ne 0 ]; then echo $i &> /dev/null else echo $i > /dev/null # yum install sshpass -y #创建秘钥 # ssh-keygen service network start *> /dev/null . /etc/init.d/functions yum install sshpass -y &> /dev/null for ipadd in $i do sshpass -pnihao123! ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i -o StrictHostKeyChecking=no &>/dev/null if [ $? -eq 0 ] then action "主机 $i" /bin/true echo "" else action "主机 $i" /bin/false echo "" fi done fi }& done exit 0
原版
#!/bin/bash #前提请把公钥默认创建完成 #例 ssh-keygen --- 一路回车 cat<<eof ******************************************** 请输入你的网段,查看可用IP地址. 例:10.0.0 请耐心等待! ******************************************* eof read -p "Please enter the network segment where you want to distribute the secret keys : " ip read -s -p "Please enter your local password :" pass for i in $ip.{1..253} do { ping -c 1 $i &>/dev/null if [ $? -ne 0 ]; then echo $i &> /dev/null else echo $i > /tmp/ip.txt #先下载 yum install sshpass #创建秘钥 # ssh-keygen . /etc/init.d/functions yum install sshpass -y *> /dev/null for ipadd in `cat /tmp/ip.txt` do sshpass -p$pass ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ipadd -o StrictHostKeyChecking=no &>/dev/null if [ $? -eq 0 ] then action "主机 $ipadd" /bin/true echo "" else action "主机 $ipadd" /bin/false echo "" fi done fi }& done