Назад | Перейти на главную страницу

проблема входа sftp с chroot

Я хочу иметь возможность создать структуру для размещения нескольких сайтов. Я хочу, чтобы пользовательские файлы находились внутри /var/www/sites/domain.com, а доступ к sftp был ограничен с помощью chroot.

Я следил за некоторыми примерами того, как это настроить, и вот что я сделал до сих пор:

Добавил нового пользователя, установил домашний каталог и группу:

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

и перезапустили службу

Я настроил /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

Но когда я пытаюсь подключиться через sftp с помощью filezilla, я получаю следующее:

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

Имя пользователя и пароль, данные filezilla, конечно, верны

Что мне не хватает?

Internal-sftp требует, чтобы chrooted пользовательский дом находился в корневом каталоге:

/ некоторый / путь / принадлежащий root / пользователь-каталог1

У корневого каталога должно быть 555 разрешений, а пользовательские каталоги должны создаваться пользователем root и принадлежать конкретному пользователю. Внутри подкаталогов пользователь может делать что угодно, но не может их удалять или переименовывать.

В вашем случае хороший подход следующий:

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

Дом пользователя - это /var/www/sites/foobar.com/

var, www, sites и foobar.com должен принадлежать root. Также foobar.com должно иметь 555 разрешений. data и logs подкаталоги должны принадлежать пользователю, а разрешения должны быть достаточно широкими, чтобы позволить httpd получить к ним доступ.