基于SSH-key互信的一键脚本

通过ssh-key手动执行

#生成无密码的rsa文件
ssh-keygen -f /root/.ssh/id_rsa -t rsa -P ''
#通过ssh-copy-id的方式将id_rsa传送至对面,也可以不带路径,默认路径为/root/.ssh/id_rsa.pub;建议使用ssh-copy-id的方式,一般生成环境使用scp违规;
ssh-copy-id -i /root/.ssh/id_rsa.pub <host1_name>
ssh-copy-id -i /root/.ssh/id_rsa.pub <host2_name>

少节点环境使用的ssh互信脚本

#!/bin/bash
IPLIST="
192.168.213.121
192.168.213.122
192.168.213.123
192.168.213.124
192.168.213.125"
rpm -q sshpass &> /dev/null || yum -y install sshpass
[ -f /root/.ssh/id_rsa ] || ssh-keygen -f /root/.ssh/id_rsa -P ''
export SSHPASS=123456
for IP in $IPLIST;do
{ sshpass -e ssh-copy-id -o StrictHostKeyChecking=no $IP; } &
done
wait

#!/bin/bash
#较少node场景下使用,注意:依赖sshpass包,使用前先rpm -qa|grep sshpass,若无回显则需要安装
PASS="Huawei12#$"
IP_list=(
192.168.213.121
192.168.213.122
)
#环境清理
rm -rf /root/.ssh/id_rsa
#生成ssh_key的rsa文件
ssh-keygen -f /root/.ssh/id_rsa -t rsa -P ''
#拷贝公钥
for i in "${IP_list[@]}";do
sshpass -p "$PASS" ssh-copy-id -i root@"$i"
done

多节点环境下使用的互信脚本

#!/bin/bash
#较多node场景使用;注意:依赖sshpass包
PASS="redhat"
#设置网段最后的地址
END="160"
NET_name="eth0"
IP="$(ip a s "$NET_name" | awk -F'[ /]+' 'NR==3{print $3}')"
Segment=${IP%.*}.

#环境清理,不清理会需要输入y,即覆盖
rm -rf /root/.ssh/id_rsa
#生成可连通的主机列表
[ -e /root/SCANIP.log ] && echo "" > /root/SCANIP.log || touch /root/SCANIP.log
for((i=1;i<="$END";i++));do
ping -c1 -w1 "$Segment""$i" &>/dev/null && echo  "$Segment""$i" >/root/SCANIP.log &
done
#删除空行
sed -Ei "/^$/d" /root/SCANIP.log
#生成ssh_key的rsa文件
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
#拷贝公钥
while read -r line ;do
        sshpass -p "$PASS" ssh-copy-id -i  root@"$line"
        done</root/SCANIP.log
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值