我正在尝试使用/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
另外,请务必检查用户的目录是否具有正确的权限。更多详细信息请参阅这个答案。