因此我按照“Chroot 和 Debian”教程进行操作http://sublimation.org/scponly/wiki/index.php/FAQ
然后,当我通过 ssh 登录用户“上传”时,我无法访问命令行(这是我想要的)。
但是当我通过 SFTP 进入上传用户时,我仍然可以看到所有的根文件(/),它并没有将我 chroot 到 /home/upload,这是怎么回事?
….
我将其添加到 /etc/ssh/sshd_config 文件的末尾,然后重新启动
Subsystem sftp internal-sftp
UsePAM yes
Match User upload
ChrootDirectory /home/upload
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
然后当我登录 sftp 时,我只能看到我的上传文件夹(这是我想要的),但是现在 scp 不起作用:P
然后 SCP 会接受我的密码:
debug1: Next authentication method: password
[email protected]'s password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_NZ.UTF-8
debug1: Sending command: scp -v -t /test
它将挂在最后一条调试消息上。
任何帮助将不胜感激。
注意,运行 Debian Lenny
答案1
你是不是在这里使用scponly
。您已限制用户upload
使用 SFTP,因此您无法scp
在该帐户上使用,因为它scp
依赖于交互式 shell 或至少支持某些命令的 shell(例如scponly
或rssh
)。
使用sftp
或其他 SFTP 客户端(例如lftp
)访问该帐户或从 sshd_config 中删除ForceCommand
和指令。ChrootDirectory
答案2
scponly 本身支持 chroot。有编译时选项可以启用它,特别是--enable-chrooted-binary
。scponly 需要 SUID 位来启用 chroot。
scponlyc
如果已经编译,您将在文件系统上获得二进制文件。
chroot 作为安全解决方案的实用性也存在局限性。