所以我遵循了http://sublimation.org/scponly/wiki/index.php/FAQ中的“Chroot 和 Debian”教程
然后,当我通过 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
你没有在这里使用
scponly
。您已将用户限制upload
为使用 SFTP,因此您不能scp
在该帐户上使用,因为scp
依赖于交互式 shell 或至少一个支持某些命令(如scponly
orrssh
)的 shell。使用
sftp
或其他 SFTP 客户端(例如lftp
)访问该帐户或从您的 sshd_config 中删除ForceCommand
andChrootDirectory
指令。scponly 原生支持 chroot。有编译时选项可以启用它,尤其是
--enable-chrooted-binary
. scponly 将需要 SUID 位来启用 chroot。如果已经编译,您的文件系统上将拥有
scponlyc
可用的二进制文件。chroot 作为安全解决方案的有用性也存在限制。