ubuntu20.04配置root用户登录和ssh免密登录脚本

##开启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 "所有服务器的免密登录设置已完成"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值