我正在我的系统中创建用户,这些用户仅使用“/etc/ssh/sshd_config”被 chroot 监禁到自己的主目录。它工作正常,但我想让ChrootDirectory
它的主目录成为/home/%u/%u
或/home/%u/public
。
/home/%u
我已经尝试了这两种方法,但在这样做并使用 FlashFXP 或 FileZilla(有效)等 FTP 客户端进行连接时,似乎总是拒绝连接。
权限很好,因为当子目录设置为“ChrootDirectory /home/%u”时我可以访问该子目录。那我做错了什么?
答案1
man sshd_config
:
ChrootDirectory
指定身份验证后 chroot(2) 的目录路径名。在会话启动时,sshd(8) 检查路径名的所有组成部分是否为 root 拥有的目录,任何其他用户或组都无法写入这些目录。
如果您将用户限制为 SFTP,则可以使用主目录(但不能使用子目录),无需任何技巧:
在仅使用 sftp 而不是 ssh 或 scp 的特殊情况下,可以使用 ChrootDirectory %h 或 ChrootDirectory /some/path/%u。包含此目录的文件系统必须使用选项 nodev 以及 nosuid 或 noexec 进行挂载。目录的所有者应该是用户。路径其他组件的所有权必须满足通常的条件。该目录中不需要存在其他文件。
使用 可以限制 SFTP ForceCommand internal-sftp
。