创建 SSH 用户并限制对特定文件夹的访问

创建 SSH 用户并限制对特定文件夹的访问

因此,我正在尝试执行以下操作。我有一个 DigitalOcean Ubuntu 服务器,默认情况下使用 SSH 密钥登录。

我需要创建另一个只能访问该/var/www/mysite.com/public/b文件夹的用户。我的流程如下:

1.使用以下命令创建新用户:

adduser 
    --home /var/www/mysite.com/public/b 
    --shell /bin/bash 
    --no-create-home 
    --ingroup www-data 
    --ingroup ssh 
    testuser

2. 然后,由于我不确定如何使用密钥对来处理这个问题,因此我在 sshd_config 文件中启用了通过 SSH 进行密码登录,如下所示:

PasswordAuthentication yes

3. 完成此操作后,我能够使用用户和密码组合通过 SSH 和 SFTP 打开网站,但用户可以访问所有内容。

4. 我尝试在 sshd_config 中使用它来将用户限制在他的主文件夹中:

Subsystem sftp internal-sftp

......

Match User testuser
    ChrootDirectory /var/www/mysite.com/public/b 
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp

5. 添加该部分后,我无法再通过 SSH 登录。

我检查了/var/log/auth.log文件,与此相关的错误是:

fatal: bad ownership or modes for chroot directory component "/var/www/mysite.com/"

我的网站的所有权属于www-data:root所有文件夹。

权限如下:

在此处输入图片描述]

我遇到的另一个问题是,即使我成功连接,也无法上传任何内容,即使将用户添加到根组后也没有任何变化。我尝试使用 www-data:www-data 拥有该文件夹,但没有任何变化。

是否有捷径可寻?

相关内容