目录

ssh公钥分发

目录

在应用ansible的实际情况中,有一个很现实的问题,ansible是需要对主机做ssh免密登陆的,而挨个对主机做免密是非常的繁琐的,挨个敲IP不仅非常的繁琐而且容易出错,为解决这个问题,为以后使用ansible时的便捷,写了一个小脚本,实现批量对主机的免密配置

安装sshpass

bash

yum -y install sshpass

生成本地私钥

bash

ssh-keygen

创建服务器信息文件

bash

cat << EOF >> hosts.txt
192.168.1.10 22 root root
192.168.1.11 22 root root
EOF

分发公钥

bash

sh key.sh

脚本内容如下,也放在了Github

text

wget https://raw.githubusercontent.com/bwcxyk/shell_script/main/key.sh

key.sh文件

shell

#!/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