Я хочу настроить sftp-сервер для общего доступа к каталогу, но я не знаю, как его изменить /etc/ssh/sshd_config
.
Мои требования:
1) Логин не должен использовать сертификаты, только пароль (т.е. авторизация использует метод пароля)
2) Я хочу войти в систему с пользователем: ftp, пароль: foo и поделиться каталогом / home / ftp.
3) У меня есть приложение, которое время от времени должно загружать файл с сервера, мне не нужно входить в систему с полнофункциональным клиентом.
До сих пор я добавил следующие строки в / etc / ssh / sshd_config:
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
Все остальное комментируется.
/home/ftp
это пустой каталог в данный момент.
Доступ работает, если я пытаюсь загрузить файл с использованием учетных данных root, но не работает, если я использую учетные данные ftp. Нужно ли устанавливать оболочку входа? Нужно ли как-то заполнять / home / ftp?
РЕДАКТИРОВАТЬ: Это мой журнал SSHD:
subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering
* Клиент зависает здесь (до истечения времени ожидания) *
Обратите внимание, опять же, что если я войду в систему как «root», файл загрузится правильно. Он также загружается правильно, если я закомментирую последние три строки файла конфигурации (то есть Match
строку и следующие 2).
ssh
, или PuTTY в Windows? Какую версию OpenSSH вы используете?Ответы:
Вам нужно убедиться, что
/home/ftp
он принадлежит,root
а эта группа и другие не имеют прав на запись, напримерchmod 0755
. Вам нужно добавить подкаталоги дляftp
добавления файлов в.Вам также нужна
internal-sftp
подсистема, в противном случае вам необходимо обеспечить надлежащуюchroot
среду в/home/ftp
:Чтобы запретить все виды входа без пароля, введите
Они активированы по умолчанию.
источник
/var/log/secure
, по крайней мере, именно там я получаю его в моей системе./var/log/messages
. У меня есть следующее: сFailed none for ftp [...]
последующимAccepted password for ftp [...]
иUser child is on pid 7658
. Клиент зависает, а затем время ожиданияsshd_config
было просто отлично.