bash
#!/bin/bash
#判断本机是否有公匙文件
if [ ! -f /root/.ssh/id_rsa.pub ]
then
# -f 指定文件位置
# -P 指定密语
# -q 静默模式
ssh-keygen -t rsa -f /root/.ssh/id_rsa -P "" -q
fi
#判断自己是否安装sshpass
oo=`dpkg -l |grep sshpass | wc -l`
if [ $oo -eq 0 ]
then
apt install -y sshpass
# echo "sshpass not install , please install sshpass!"
exit
fi
#定义主机列表数组
declare -a HostAddress
#输入passwd
read -p "please input passwd : " PassWd
#输入网段,只需要输入前三个,例如10.0.0 后面没小数点
read -p "please input network segment : " NetSeg
#输入主机位,各个主机位适应空格隔开
echo -n "input hostaddress ,space separate : "
read -a HostAddress
#开始分发公匙
for ip in ${HostAddress[@]}
do
sshpass -p $PassWd ssh-copy-id -i /root/.ssh/id_rsa.pub root@$NetSeg.$ip -o StrictHostKeyChecking=no &>/dev/null
ssh $NetSeg.$ip hostname
done