SSH用户身份验证到新用户失败

时间:2015-05-29 16:41:38

标签: linux amazon-web-services ssh amazon-ec2 chef

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

#!/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。

0 个答案:

没有答案