免密登录

#生成SSH密钥对:在本地计算机上生成SSH密钥对。如果你还没有密钥对,可以使用以下命令生成:
ssh-keygen -t rsa
#这将在你的~/.ssh/目录下生成id_rsa和id_rsa.pub文件,其中id_rsa是私钥,id_rsa.pub是公钥

#将公钥复制到远程主机:你需要将生成的公钥复制到你想要免密码登录的远程主机上。可以使用ssh-copy-id命令
ssh-copy-id username@remote_host
#批量免密登录
yum -y install sshpass

#脚本
#!/bin/bash

# 远程主机列表
hosts=(
    "root@192.168.11.12"
    "root@192.168.11.13"
)

# 你的SSH密码
password="your_ssh_password"

# 循环迭代远程主机列表
for host in "${hosts[@]}"; do
    # 将公钥复制到远程主机的authorized_keys文件中
    sshpass -p $password ssh-copy-id -o StrictHostKeyChecking=no $host
done
#!/bin/bash

# 定义网段
subnet="192.168.11."

# 定义远程主机范围
start=12
end=13

# 指定存储用户名和密码的文件
credentials_file="/root/test/credentials.txt"

# 检查凭据文件是否存在
if [ ! -f "$credentials_file" ]; then
     echo "凭据文件 '$credentials_file' 不存在"
     exit 1
fi
 
 # 循环生成主机列表并执行操作
 for ((i=start; i<=end; i++)); do
     host="$subnet$i"
     # 读取凭据文件并循环迭代
     while IFS=' ' read -r username password; do
         # 将公钥复制到远程主机的authorized_keys文件中
         sshpass -p $password ssh-copy-id -o StrictHostKeyChecking=no $username@$host
     done < "$credentials_file"
 done