新用户通过 SSH 登录 EC2 失败

问题描述 投票:0回答:1

我正在 EC2 实例上与 Chef 合作,并创建了一个通过 Knife ec2 命令传入的用户数据脚本,该脚本创建一个新用户,从默认的 ec2 用户复制公钥文件并设置正确的所有权和权限。

#!/bin/bash
CHEFUSER="$(date +%s | sha256sum | base64 | head -c 32)"
useradd $CHEFUSER
echo $CHEFUSER 'ALL=(ALL) NOPASSWD:ALL' | tee -a /etc/sudoers
cp -f /home/ec2-user/.ssh/authorized_keys /tmp/
chown $CHEFUSER /tmp/authorized_keys
runuser -l $CHEFUSER -c 'mkdir ~/.ssh/'
runuser -l $CHEFUSER -c 'mkdir ~/.aws/'
runuser -l $CHEFUSER -c 'chmod 700 ~/.ssh/'
runuser -l $CHEFUSER -c 'mv -f /tmp/authorized_keys ~/.ssh/'
runuser -l $CHEFUSER -c 'chmod 600 ~/.ssh/authorized_keys'

运行脚本后,检查所有权和权限似乎按预期返回:

# ls -l .ssh/authorized_keys
-rw-------. 1 NWYzMThiMDBmNzljOTgxZmU1NDE1ZmE0 root 396 May 29 11:28 .ssh/authorized_keys
# stat -c '%a %n' .ssh/
700 .ssh/
# stat -c '%a %n' .ssh/authorized_keys
600 .ssh/authorized_keys

如果我与新用户进行 SSH,密钥将被拒绝。在新实例上,如果我在终端中复制/粘贴与 root 相同的命令(这就是脚本根据 Amazon 运行的方式),则一切正常,然后我可以使用新用户进行 SSH 登录。

linux amazon-web-services ssh amazon-ec2 chef-infra
1个回答
0
投票

嗨,你的解决方案是什么???

© www.soinside.com 2019 - 2024. All rights reserved.