##开启root登录
#1.安装ssh,已安装可省略
apt install ssh -y
#配置root密码,已配置可忽略
sudo passwd root
#2.配置root用户可以登录
cat << EOF >> /etc/ssh/sshd_config
PermitRootLogin yes
EOF
systemctl restart sshd #重启sshd服务
###ssh免密登录
注意:先使用“ssh-keygen -t rsa”生成密钥
1.servers.txt模板
cat /opt/servers.txt #servers.txt模板,ssh免密登录的主机ip
192.168.47.132
192.168.47.135
2.脚本如下,执行脚本即可
#!/bin/bash
# 设置一些变量
PRIVATE_KEY_FILE="/root/.ssh/id_rsa"
PUBLIC_KEY_FILE="/root/.ssh/id_rsa.pub"
SERVER_LIST_FILE="/opt/servers.txt" # 假设你有一个包含所有服务器IP或主机名的文件
# 检查私钥文件是否存在,如果不存在则生成一个新的密钥对
if [ ! -f "$PRIVATE_KEY_FILE" ]; then
ssh-keygen -t rsa -b 4096 -f "$PRIVATE_KEY_FILE" -q -N ""
echo "SSH密钥对已生成在 $PRIVATE_KEY_FILE"
else
echo "SSH私钥已存在在 $PRIVATE_KEY_FILE"
fi
# 读取服务器列表文件,并尝试将公钥分发到每个服务器
while IFS= read -r server; do
echo "正在设置服务器 $server 的免密登录..."
# 尝试使用ssh-copy-id将公钥复制到远程服务器
ssh-copy-id -i "$PUBLIC_KEY_FILE" "$server"
# 如果ssh-copy-id失败(可能是因为第一次连接),则记录错误信息
if [ $? -ne 0 ]; then
echo "ssh-copy-id到 $server 失败,请检查服务器可达性和权限"
fi
done < "$SERVER_LIST_FILE"
echo "所有服务器的免密登录设置已完成"