Я создал пользователя и установил его оболочку на /usr/sbin/nologin
. Как ожидалось Соединение на замазке сразу закрывается после соединения. При попытке заставить WinSCP соединяться с протоколом SFTP, это говорит, что соединению отказали и спрашивает, работает ли сервер SFTP. Используя протокол SCP неудивительно не работает также.
Я установил RSSH и установил оболочку пользователя на /usr/bin/rssh
и получил точно тот же результат. PuTTY сразу отбросил соединение, SFTP, который спрашивают, если бы сервер SFTP работал, и SCP не работал бы.
Я установил оболочку пользователя на /bin/bash
и и SFTP и SCP хорошо работали, точно так же, как с моим основным пользователем.
Что я делаю неправильно? Как я могу установить пользователя так, чтобы это могло загрузить файлы от сервера, но не имело доступа оболочки?
Спасибо.
От 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
используются в качестве оболочки входа в систему.