我试图让用户“用户”通过sftp或ssh访问我的服务器。 我想用chroot将它们监控到一个目录中。 我阅读这里的说明,但它不起作用。 我做了以下几点:
修改/ etc / ssh / sshd_config并添加
Match User user
ForceCommand internal-sftp
ChrootDirectory /home/duke/aa/smart到文件底部
将子系统行更改为Subsystem sftp internal-sftp
用/etc/init.d/ssh restart启动sshd
使用PuTTY作为用户“user”以ssh身份login
Putty说“服务器意外closures连接”。
这是为什么呢?如何解决?
编辑
遵循下面的build议,我已经使sshd_config的底部看起来像:
Match User user ChrootDirectory /tmp
但没有变化。 我确实得到一个密码确定,但我不能通过SSH连接,也不能通过SFTP连接。 是什么赋予了?
您设置为chroot的目录必须由root拥有,并拥有755个权限。
这是我用于我的设置
Match user sftpuser ChrootDirectory /home/sftpuser AllowTCPForwarding no X11Forwarding no ForceCommand internal-sftp
在家
drwxr-xr-x 5 root users 4096 Jan 29 10:31 sftpuser
在/ home / sftpuser中
drwx------ 2 sftpuser users 4096 Jan 29 10:52 sftpuser
这个chroot把它们放到/ home / sftpuser目录下,但是因为他们没有写入权限,所以我创build了第二个sftpuser目录供他们写入。
我认为问题出现在ChrootDirectory /home/duke/aa/smart 。 问题与权限有关。 您试图login到框中的用户没有我认为的可执行权限。 你可以尝试改变这个像/tmp这样的/tmp ,每个用户都有完全的权限。
检查你的/var/log/auth.log是否有ssh错误。
这可能是一个权限错误。 chroot目录必须由root拥有。
仅供参考,我的工作configuration看起来像这样(我更喜欢使用组访问,而不是用户访问):
Subsystem sftp internal-sftp AllowGroups sshusers sftponly Match group sftponly ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp