[root@web ~]# cat ssh-copy-id.sh
#!/bin/bash
# 设置远程服务器的用户名列表和对应的IP地址列表
USERS=("user1" "user2" "user3") # 替换为你的用户名列表
SERVERS=("192.168.212.141" "192.168.212.142" "192.168.212.143") # 替换为你的服务器IP地址列表
PASSWORD="your_password" # 替换为你的远程服务器密码
PUBLIC_KEY_FILE="$HOME/.ssh/id_rsa.pub" # 公钥文件路径
# 检查公钥文件是否存在
if [ ! -f "$PUBLIC_KEY_FILE" ]; then
echo "公钥文件不存在,请确认路径是否正确或者生成新的SSH密钥对。"
exit 1
fi
# 循环遍历远程服务器列表,并推送公钥
for ((i = 0; i < ${#SERVERS[@]}; i++)); do
REMOTE_SERVER="${USERS[$i]}@${SERVERS[$i]}"
# 向远程服务器传输公钥内容
echo "正在将公钥推送到远程服务器 $REMOTE_SERVER ..."
sshpass -p "$PASSWORD" ssh-copy-id -o StrictHostKeyChecking=no -i "$PUBLIC_KEY_FILE" "$REMOTE_SERVER"
if [ $? -eq 0 ]; then
echo "公钥已成功推送到远程服务器 $REMOTE_SERVER。"
else
echo "无法将公钥推送到远程服务器 $REMOTE_SERVER,请检查权限和SSH配置。"
fi
done
版权属于:
admin
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)