通过 sshd_config 对 FTP 进行 Chroot Jailing 组会导致该组内所有成员的连接中止

通过 sshd_config 对 FTP 进行 Chroot Jailing 组会导致该组内所有成员的连接中止

我正在尝试使用/etc/ssh/sshd_config文件 chroot jail。我的 FTP 服务器是 vsfptd,虽然我知道如何利用 vsftpd 的配置 chroot jail,但我想尝试使用sshd_config。但是,sshd_config像我这样修改文件只会阻止我试图监禁的用户的 FTP 连接。

验证我的 SSH 协议版本是否高于 5.0:

telnet <host> 22:
SSH-2.0-OpenSSH_5.3

添加用户:

groupadd testgroup
useradd -d /home/testdir/testuser -g testgroup testuser
chown -R root:testgroup /home/testdir
chmod -R 775 /home/testdir

sshd_config 文件:

Subsystem sftp internal-sftp

Match group testgroup
ChrootDirectory /home/testdir/%u
ForceCommand internal-sftp
AllowTcpForwarding no

重新启动 sshd 和 vsftpd 后:

service restart sshd
service restart vsftpd

testuser在尝试使用 Filezilla 进行 FTP 时收到以下错误:

Status: Connecting to <host>...
Response:   fzSftp started
Command:    open "testuser@<host>" 22
Command:    Pass: ********
Error:  Network error: Software caused connection abort
Error:  Could not connect to server

如果我在其他组创建新用户,他可以正常使用 FTP,不会出现此错误。这让我得出结论,我的sshd_config文件设置不正确。

答案1

SSH chrooting 不像 vsftpd chroot 那样工作。您需要在 chroot 目录中有一个可用的基本系统。请按照本指南正确执行此操作:

http://allanfeid.com/content/creating-chroot-jail-ssh-access

如果你只需要 SFTP,chroot 用户会更容易一些 - 请按照本指南操作:https://wiki.archlinux.org/index.php/SFTP_chroot

另外,请务必检查用户的目录是否具有正确的权限。更多详细信息请参阅这个答案

相关内容