思路:创建密钥,并通过分发公钥文件到其他服务器,从而实现批量免密无交互登录服务器
拓扑结构:主服务器 |----》从服务器1
|----》从服务器2
|----》.....
参考链接:SSH命令批量操作服务器_ssh批量登录远程执行脚本-CSDN博客
实现步骤:
1、在主服务器生成密钥
ssh-keygen -t rsa
一路回车即可,实现效果:
其中id_rsa 为私钥文件,相当于钥匙,需要保留在主服务器上
id_rsa.pub 为公钥文件,相当于锁,需要分发到各个从服务器上
2、在主服务器上,批量分发公钥文件到从服务器上
yum install -y sshpass
备注:因下发公钥文件时,仍需输出从服务器的登录密码,所以可以借助sshpass 自动输入密码
编写从服务器信息文件 deployhost.txt
其中第一列表示从服务器IP信息,第二列表示从服务器登录密码
编写批量分发公钥脚本deploy_rsa.pub
#!/bin/bash
IFSBAK=$IFS
IFS=$'\n'
for line in $(cat /root/deployhost.txt);domyip=$(echo "$line" | awk '{print $1}')mypwd=$(echo "$line" | awk '{print $2}')sshpass -p "$mypwd" ssh-copy-id -i /root/.ssh/id_rsa.pub $myip
done
IFS=$IFSBAK
3、执行分发公钥脚本 ./deploy_rsa.sh
4、验证是否可以免密登录