sftplogin问题与chroot

我希望能够创build一个托pipe多个网站的结构。 我希望用户文件驻留在/var/www/sites/domain.com内,并且使用chroot来限制sftp访问。

我已经遵循了一些关于如何设置的例子,这是我迄今为止所做的:

添加一个新用户,设置主目录和组:

useradd foobar -d /var/www/sites/foobar.com -g sftp

/etc/ssh/sshd_config我添加了:

 Match Group sftp X11Forwarding no ChrootDirectory %h AllowTcpForwarding no ForceCommand internal-sftp 

并重新启动服务

我已经configuration/etc/vsftpd/vsftpd.conf以包含以下更改:

anonymous_enable=NO

local_enable=YES

chroot_local_user=YES

并重新启动vsftpd

我将/ var / www / sites的所有权设置为root,将/var/www/sites/foobar.com设置为foobar

但是,当我尝试使用FileZilla通过SFTP连接我得到这个:

 Error: Authentication failed. Error: Critical error: Could not connect to server 

给予filezilla的用户名​​和密码当然是正确的

我错过了什么?

Internal-sftp要求chroot用户home驻留在root拥有的dir中:

/一些/path/根拥有/用户DIR1

根目录目录应该有555个权限,用户目录应该由root创build并由特定用户拥有。 内部subdirs用户可以做任何事情,但他不能删除或重命名他们。

在你的情况下,好的方法是下一个:

 /var/www/sites/foobar.com/data /logs 

用户的家是/var/www/sites/foobar.com/

varwwwsitesfoobar.com应该是root拥有的。 此外foobar.com应该有555的权限。 datalogs子目录应该由用户拥有,并且权限应该足够宽以允许httpd访问它们。