Проблемы с настройкой SFTP-сервера на смонтированном жестком диске (client_loop: send disconnect: Connection reset)

Проблемы с настройкой SFTP-сервера на смонтированном жестком диске (client_loop: send disconnect: Connection reset)

При попытке настроить SFTP-сервер на смонтированном жестком диске и выполнении инструкций из множества руководств при входе в систему всегда возникает ошибка «client_loop: send disconnect: Connection reset».

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

sudo useradd -g sftp -d /media/linux/MyHDD/NAS/USERNAME -s /sbin/nologin USERNAME-nas

sudo passwd USERNAME

Где USERNAME — мое личное имя пользователя

Затем я попытался назначить владельцем всего, что находится выше папки USERNAME, пользователя root, а владельцем папки USERNAME — пользователя:

sudo chown -R root:root /media

sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME

Отредактировал файл sshd_config, добавив в него:

Subsystem sftp internal-sftp

Match Group sftp
ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
ForceCommand internal-sftp
AllowTcpForwarding no
X11 Forwarding no

Не забываем перезапустить службу sshd

sudo systemctl restart sshd

Так как я хотел получить доступ к этой папке на моем компьютере Linux, я установил права доступа 777 для папки media.

sudo chmod -R 777 /media

После всего этого при попытке войти в sftp и ввести пароль я получаю следующее:

sftp -P PORTNO USERNAME@IP

client_loop: send disconnect: Connection reset
Connection closed

Это проблема с разрешениями или, возможно, с правами собственности, я не знаю. Я потратил на это много времени и, похоже, не могу разобраться, поэтому любая помощь будет оценена по достоинству.

решение1

ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chmod -R 777 /media

Для функции «ChrootDirectory» требуется, чтобы каталог chroot и его родительские каталоги имелиопределенные права собственности и разрешения:

ChrootDirectory
Указывает путь к каталогу для chroot(2) после аутентификации. При запуске сеанса sshd(8) проверяет, чтовсе компоненты имени пути являются каталогами, принадлежащими пользователю root, которые не доступны для записи никакому другому пользователю или группе. После chroot sshd(8) изменяет рабочий каталог на домашний каталог пользователя. Аргументы ChrootDirectory принимают токены, описанные в разделе ТОКЕНЫ.

При настройке каталога chroot возникают две проблемы:

Во-первых, /media, /media/linux/MyHDD/NAS/USERNAME, и все каталоги между ними не могут быть доступны для записи всем или группам. Они должны иметь режим 755, а не 777.

Во-вторых, /media/linux/MyHDD/NAS/USERNAMEсам должен принадлежать root. Каталоги и файлы внутри него могут принадлежать пользователю, но USERNAMEсам каталог должен принадлежать root.

Связанный контент