При подключении к серверу SFTP у меня нет проблем с переходом в каталог / home и доступом к нужному каталогу (FileFolder). Но когда я пытаюсь настроить его так, чтобы он перешел прямо в каталог, он отклоняет соединение.
Когда я изменяю следующую строку ChrootDirectory /home
к ChrootDirectory /home/FileFolder
мое соединение отклонено при подключении в качестве гостя. Разрешения для гостевого пользователя rx
поскольку я хочу, чтобы пользователь мог загружать только файлы.
Я попытался добавить логирование в свою конфигурацию, чтобы, возможно, понять, что происходит:
SyslogFacility AUTH
LogLevel INFO
Но файл /var/log/auth.log
не существует (я могу ошибаться, и он записывается в другой файл). Я также пробовал использовать journalctl _COMM=sshd
но он не дает мне подробной информации, только пользователей, которые подключаются, и их IP-адреса.
Мой sshd_config:
Port 22
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
Subsystem sftp /usr/lib/ssh/sftp-server
Match Address 192.168.8.*
PasswordAuthentication yes
Match User guest
ForceCommand internal-sftp
ChrootDirectory /home
Я пробовал решение отсюда Но это не работает.
P.S. Я подключаюсь с IP-адреса 192.168.8. *, Поэтому это не ошибка аутентификации pubkey.
Решение: мне пришлось изменить владельца FileFolder на root. Изначально это был просто пользователь с привилегиями root.
Я подозреваю, что проблема с разрешениями. Почему chroot to / home работает, потому что он принадлежит корень. Chroot для / главная / FileFolder не работает, потому что он не принадлежит root и должен быть доступен для записи только root. Все элементы в chroot путь должен иметь такую же привилегию. Проверьте "/ var / log / secure" для информации журнала. В нем будет указана причина сбоя chroot.