shell-script 创建密钥认证

admin
2024-03-28 / 0 评论 / 63 阅读 / 正在检测是否收录...
[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
0

评论 (0)

取消