如何向 Centos 7 AWS 机器添加具有非标准主目录的额外 SSH 用户?

如何向 Centos 7 AWS 机器添加具有非标准主目录的额外 SSH 用户?

我在 AWS 上有一个 CentOS 7 实例,并使用 .pem 文件进行连接。当我创建一个新用户并按照标准步骤操作时,(创建 .ssh 目录,chmod 700 它,创建authorized_keys 文件,复制公钥,chmod 600 它。此处的说明:https://aws.amazon.com/premiumsupport/knowledge-center/new-user-accounts-linux-instance/)效果很好。

但是,当我使用非标准主目录创建新用户时,我不断收到权限错误。我尝试在 / 目录中创建一个文件夹,然后当我注意到权限与那里的其余文件夹不匹配时,我使用 root 帐户在那里创建了一个新文件夹,然后在该文件夹下创建了一个新用户。 (所以基本上 /test/ 由 root 所有,/test/newuser/ 由新用户所有。)

我按照其余步骤进行操作,但仍然没有运气。

我检查了 /etc/ssh/sshd_config 文件并编辑为:

AuthorizedKeysFile .ssh/authorized_keys /test/newuser/.ssh/authorized_keys

那也没用。

我应该注意,此设置适用于 amazon linux 2 映像,但不适用于 CentOS 7。有什么建议吗?

答案1

创建用户时指定非标准主目录,useradd命令:

创建基本主目录

sudo mkdir /test

如果 SELinux 已启用并在强制模式下运行,则必须使用正确的 SELinux 上下文重新标记文件:

sudo semanage fcontext -a -t user_home_dir_t "/test(/.*)?"

强制 SELinux 动态重新标记文件

sudo restorecon -Rv /test

然后添加具有自定义主目录的用户

sudo useradd -d /test/user1 user1
sudo useradd -d /test/user2 user2

这些用户将为其主目录设置正确的权限。有关 SELinux 上下文和重新标记的更多信息已找到这里

答案2

好的,我想确保您已完成上述操作,该解决方案在 Centos 7 上经过了良好的测试,但未在 AWS 实例上进行了测试。

On your local server :
#Get the pub key
cat ~/.ssh/id_rsa.pub

在远程服务器上:

mkdir -p /test/newuser/.ssh/
chmod 700 /test/newuser/.ssh/
touch /test/newuser/.ssh/authorized_keys
chmod 600 /test/newuser/.ssh/authorized_keys
echo << EOF > /test/newuser/.ssh/authorized_keys
# ADD here  your ~/.ssh/id_rsa.pub already generated
EOF 
usermod -d /test/newuser test
chown root:root /test
chown -R test:test /test/*
#Edit/etc/ssh/sshd_config to add the above : 
Match User test
        AuthorizedKeysFile /test/newuser/.ssh/authorized_keys

您还可以将 sshd_config 的内容复制到远程服务器上:

grep -v '^#' /etc/ssh/sshd_config | sed '/^$/d'

相关内容