允许 SFTP 用户写访问的安全 SFTP 配置

允许 SFTP 用户写访问的安全 SFTP 配置

我正在尝试在 Ubuntu 12.04 上设置 OpenSSH,以允许执行以下操作

  • 用户只能使用 SFTP(无 shell 访问权限)
  • 用户可以写入(上传)文件
  • 访问是安全的,因此任何用户都无法查看其他用户的文件,也不会危及服务器

为此,我尝试设置 Chroot,如下所示

https://help.ubuntu.com/community/SSH/OpenSSH/Configuring

http://www.serverubuntu.it/SFTP-chroot

不幸的是,我似乎遇到了瓶颈,总结如下:

这是 ChrootDirectory 所有权问题,sshd 将拒绝对设置为 chroot 的帐户的 sftp 连接,进入任何具有 sshd 认为不安全的所有权/权限的目录。sshd 的所有权/权限要求显然很严格,规定 chroot 路径中的每个目录都必须由 root 拥有,并且只能由所有者写入。因此,例如,如果 chroot 环境位于用户的主目录中,则 /home 和 /home/username 都必须由 root 拥有,并且具有 755 或 750 左右的权限(组所有权应允许用户访问)。

https://wiki.archlinux.org/index.php/SFTP-chroot

“必须由 root 拥有,并且只能由所有者写入”似乎翻译为“只能由

这似乎限制了chroot对于只需要下载文件的用户。

我尝试

  • 将主目录组所有权更改为sftp 用户(我创建的一个群组,该用户是该群组的成员)
  • 将文件权限从 755 更改为 775,以允许组写入

当我这样做时,我无法再使用 SFTP 登录。

更改所有权和权限即可恢复登录能力。

问题

如何以安全的方式设置 SFTP,以便用户可以将文件上传到自己的主目录?

答案1

我刚提出这个问题,就找到了解决方案。

创建目录在下面chroot 目录,例如

/home/myuser/transfer

该目录可由用户写入。

相关内容