最近,我使用 OpenSSH_5.9p1 升级了 SSH 服务器,并尝试设置 chrooted SFTP/SSH。到目前为止,我设法使用 openssh5.9p1 的新功能仅为 SFTP 设置 chroot 访问:
Match User testuser ChrootDirectory /home/testuser X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
但我还需要为同一用户启用 SSH 访问。我关注了很多文章,其中一篇http://www.howtoforge.com/chroot_ssh_sftp_fedora7我设法通过 SSH 连接。但 chroot 似乎不起作用,我仍然可以浏览外部文件夹。
请问有什么建议吗?
谢谢。
答案1
Subsystem sftp internal-sftp -f LOCAL5 -l VERBOSE
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
保存并返回到命令行。重新启动 sshd 守护进程以使更改生效:service sshd restart
这基本上告诉 OpenSSH 该sftp
组中的所有用户(我们稍后将创建)都将被 chroot 到他们的主目录(%h 在 ChrootDirectory 命令中表示),并强制使用内部 sftp 帮助程序并禁用TCP 端口转发。
需要使用 Subsystem 命令才能启用 SFTP 子系统。这可以是 Fedora 中存在的 sftp 服务器助手的路径,也可以是我们将使用的内部 sftp 的路径。显然,internal-sftp 命令效果更好,并且不需要在 chroot 位置安装 shell 或额外的库。我暂时不会介绍 chrooted 命令 shell,因为让它发挥作用非常困难,而且我还没有研究过它:-)
接下来,我们需要创建一个sftp
组,将我们想要限制在监狱中的系统上的用户添加到该组中。这样做:-