当用户从 WinSCP 连接时,AWS EC2 Linux 将 SFTP 用户限制到其主目录

当用户从 WinSCP 连接时,AWS EC2 Linux 将 SFTP 用户限制到其主目录

我正在研究一种解决方案,将用户限制在主目录或特定目录中。

我需要针对以下场景限制用户,我们在 webroot 中安装了多个 Wordpress /var/www/html/wordpress1/var/www/html/wordpress2我需要创建一个用户并设置一个新的用户主目录,并且/var/www/html/wordpress2/wp-content当这个新用户使用 WinSCP 连接密码时,该用户应该只能访问/var/www/html/wordpress2/wp-content并且用户不能离开目录。

我按照以下步骤创建用户和组并设置用户主目录并进行更改,sshd_config 但是当用户使用 Winscp 连接到服务器时,用户仍然可以访问服务器上的任何目录。

useradd -g sftpgroup -d /var/www/html/wordpress2/wp-content sftpuser1
sudo passwd sftpuser1

修改了/etc/ssh/sshd_config

Subsystem sftp internal-sftp
   Match Group sftpgroup
   ChrootDirectory /home
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

配置完成后,新用户仍然可以看到服务器上的所有其他文件夹。

希望此图有助于理解我的问题 在此处输入图片描述

有人可以帮我解决一些问题吗

答案1

如果您将用户 chroot 到 ,/home并且所有用户的主页都作为 的子文件夹/home,那么用户确实可以看到所有主页。

你可能想要:

ChrootDirectory /home/%u

或者甚至更好:

ChrootDirectory %h

ChrootDirectory文档支持的代币列表


附注:您将指令缩进到 下Subsystem,这给人的印象好像它们只应用于 SFTP。它们不会,它们是全局的。实际上,缩进在 中没有任何意义sshd_config。重要的是某些Match指令是否在 指令之前。因此,指令通常在 之后缩进Match。但这只是供人类使用,SSH 服务器并不关心。

Subsystem sftp internal-sftp

Match Group sftpgroup
   ChrootDirectory %h
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

相关内容