Установка пользователя для загрузки файлов без доступа оболочки

Я создал пользователя и установил его оболочку на /usr/sbin/nologin. Как ожидалось Соединение на замазке сразу закрывается после соединения. При попытке заставить WinSCP соединяться с протоколом SFTP, это говорит, что соединению отказали и спрашивает, работает ли сервер SFTP. Используя протокол SCP неудивительно не работает также.

Я установил RSSH и установил оболочку пользователя на /usr/bin/rssh и получил точно тот же результат. PuTTY сразу отбросил соединение, SFTP, который спрашивают, если бы сервер SFTP работал, и SCP не работал бы.

Я установил оболочку пользователя на /bin/bash и и SFTP и SCP хорошо работали, точно так же, как с моим основным пользователем.

Что я делаю неправильно? Как я могу установить пользователя так, чтобы это могло загрузить файлы от сервера, но не имело доступа оболочки?

Спасибо.

1
задан 24 October 2014 в 10:56

1 ответ

От man sshd_config:

ForceCommand
         Forces the execution of the command specified by ForceCommand,
         ignoring any command supplied by the client and ~/.ssh/rc if
         present.               ...           Specifying a command
         of “internal-sftp” will force the use of an in-process sftp
         server that requires no support files when used with
         ChrootDirectory.

Так отредактируйте Ваш /etc/ssh/sshd_config и добавьте что-то вроде этого:

Match User username
    ForceCommand internal-sftp

Использовать Match так, чтобы только необходимые пользователи/группы были затронуты.


Полное описание ForceCommand говорит:

             ...    The command is invoked by using the user's login shell
         with the -c option.  This applies to shell, command, or subsystem
         execution. 

Однако как internal-sftp в процессе, это будет работать даже если /usr/bin/nologin или /bin/false используются в качестве оболочки входа в систему.

2
ответ дан 11 November 2019 в 09:30

Другие вопросы по тегам:

Похожие вопросы: