Ubuntu 中的 Chroot SFTP 用户

Ubuntu 中的 Chroot SFTP 用户

早上好,我有一个基本的 Ubuntu EC2 网络服务器,上面有 Apache,还有几个不同的网站。我使用 AWS 提供的访问密钥通过 SSH 登录它来执行基本操作(我是一名开发人员,不是系统管理员),并通过 SFTP 上传文件。

现在我们需要允许一个特定的客户端访问其中一个网站。我创建了一个新的 Linux 用户,在 sshd_config 中启用了 PasswordAuthentication,并将网站文件夹设为他的主目录。但它可以浏览服务器并访问其他文件夹,而我想禁止这种情况。

我在 Google 上搜索了很多次,其中我关注了这篇文章:https://www.cyberciti.biz/faq/debian-ubuntu-restricting-ssh-user-session-to-a-directory-chrooted-jail/

但是当我将最后几行放入 sshd_config 时,它不再允许我以受限用户身份登录,因此它不起作用。

有没有更简单的方法可以做到这一点?谢谢!

答案1

创建一个新组并将用户添加到该组。

将用户设置为登录到 /home/$USER/ 中的自己的主目录(而不是主目录之外的任何目录),然后符号链接您希望他们能够编辑的文件和目录。将其中的文件设置为chmod 700

/etc/ssh/sshd_config需要这个:

Subsystem sftp {somename}
 
   Match Group {somegroup}
   ChrootDirectory /home
   ForceCommand {somename}
   X11Forwarding no
   AllowTcpForwarding no

并且该用户无法离开其 /home 并且只能访问通过符号链接可用的文件。

如果您想要一个不同的分区,您也可以这样做,但要使用您设置的目录,root:root并在其中使用用户名和组名。用户将无法超出根目录(因为它归 root 所有)。可以使用上述配置。ChrootDirectory然后需要是您设置为“root”的目录。

相关内容