批量分发秘钥
改良版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