ssh公钥分发
目录
在应用ansible的实际情况中,有一个很现实的问题,ansible是需要对主机做ssh免密登陆的,而挨个对主机做免密是非常的繁琐的,挨个敲IP不仅非常的繁琐而且容易出错,为解决这个问题,为以后使用ansible时的便捷,写了一个小脚本,实现批量对主机的免密配置
安装sshpass
yum -y install sshpass
生成本地私钥
ssh-keygen
创建服务器信息文件
cat << EOF >> hosts.txt
192.168.1.10 22 root root
192.168.1.11 22 root root
EOF
分发公钥
sh key.sh
脚本内容如下,也放在了Github
wget https://raw.githubusercontent.com/bwcxyk/shell_script/main/key.sh
key.sh文件
#!/usr/bin/env bash
# author yao
# date 2021.3.1 13:14:36
. /etc/init.d/functions
# 分发公钥
cat hosts.txt | \
while read ipaddr port user passwd
do
sshpass -p ${passwd} \
ssh-copy-id ${user}@${ipaddr} \
-p ${port} \
-i ~/.ssh/id_rsa.pub \
-o StrictHostKeyChecking=no; \
&>/dev/null
# 判断是否成功
if [ $? -eq 0 ]
then
action "${ipaddr} " /bin/true
echo ""
else
action "${ipaddr} " /bin/false
echo ""
fi
done