10

Я хочу настроить 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).

1 ответ1

8

Вы должны убедиться, что /home/ftp принадлежит пользователю root а эта группа и другие не имеют прав на запись, например, chmod 0755 . Вам нужно добавить подкаталоги для ftp чтобы добавить файлы в.


Вам также нужна подсистема internal-sftp , в противном случае вам необходимо обеспечить правильную среду chroot в /home/ftp:

Subsystem sftp internal-sftp

Чтобы запретить вход в систему без пароля, введите

ChallengeResponseAuthentication no
GSSAPIAuthentication no
PubkeyAuthentication no

Они активированы по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .