shell脚本:免密交互式生成ssh秘钥并把公钥发送给其他机器

应用场景:我们使用ansible自动化进行发布,ssh连接需要验证,通过该脚本可以实现非交互式的产生秘钥,并把公钥发送给其他机器,直接实现免密交互

 

rpm -q sshpass &>/dev/null || yum install sshpass -y
[ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa -P '' -q
export SSHPASS=123456
while read ip
do
	sshpass -e ssh-copy-id -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" $ip
done<hosts.list

#过程详解
#1、安装sshpass工具,sshpass是一个免交互式的ssh登录工具,首先判断是否安装了该工具
#2、判断主机是否存在私钥,不存在,则通过ssh-keygen生成私钥
#-f:指定私钥存放位置,-P 指定密码  -q silence,安静的意思
#export指定sshpass的系统变量,也就是密码
#通过循环读入你需要通过ssh连接的主机,主机ip写入到hosts.list中,一行一个ip即可
#while循环逐行处理文本很有优势
#通过ssh-copy-id 复制公钥到其他需要被连接主机

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值