免密登录
#生成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