使用场景 ->ansible
#!/bin/bash
#author: kylerock
#desc:
# 1.一键创建秘钥对(如果不存在)
# 2.一键分发公钥
# 3.一键检查
#1. vars
key=/root/.ssh/id_rsa
ips="7 31 41"
pass=1
#ips="`cat /server/files/ip.txt`"
#2. 一键创建秘钥对
if [ ! -f $key ];then
ssh-keygen -f $key -P '' >/dev/null 2>&1
if [ $? -eq 0 ];then
echo "秘钥对创建成功"
else
echo "密钥对创建失败"
exit 1
fi
fi
#3. 一键分发公钥
echo "分发公钥-开始"
for ip in $ips
do
sshpass -p$pass ssh-copy-id -o StrictHostKeyChecking=no 172.16.1.$ip
#这里也可以通过$? + if判断公钥分发是否成功
done
echo "分发公钥-完成"
#4. 一键检查
echo "检查-开始"
for ip in $ips
do
ssh -o StrictHostKeyChecking=no 172.16.1.$ip hostname -I
#这里也可以通过$? + if执行是否成功
done
echo "检查-结束"
标签:分发,公钥,ip,一键,echo,ssh,密钥
From: https://www.cnblogs.com/kyle-7Qc/p/18518921