5

Я хотел бы настроить окно Linux (возможно, сервер Ubuntu), чтобы я мог настраивать пользователей, чтобы можно было загружать / скачивать файлы через rsync / scp / sftp, но не должно быть возможности ssh на машину и получите интерактивный терминал.

Это возможно? Как мне настроить это? Я знаю, что все, что нужно, чтобы сервер ssh был включен, для работы rsync/scp/sftp, но я предполагаю, что должен быть способ предотвратить прямой вход в систему.

3 ответа3

5

Установите для оболочки пользователя значение rssh. Из справочной страницы:

rssh - защищенная оболочка с ограниченным доступом, допускающая только scp и / или sftp

2

Если вам нужно только разрешить rsync, разработчики rsync предоставляют сценарий rrsync для решения вашей проблемы. Это доступно здесь: http://ftp.samba.org/pub/unpacked/rsync/support/rrsync

Вам просто нужно добавить что-то подобное в ваш файл .authorized_keys (в этом примере разрешен доступ только для чтения (-ro) к /some/directory/:

command="/path/to/rrsync -ro /some/directory/",no-agent-forwarding,no-port-forwarding,no-pty,no-user-rc,no-X11-forwarding ssh-rsa AAA...

Более подробное объяснение и пример доступны здесь: https://www.guyrutenberg.com/2014/01/14/restricting-ssh-access-to-rsync/

1

Вы можете использовать псевдооболочку типа scponly и установить ее для пользователей, которым вы не хотите входить напрямую.

Другой возможный способ - установить команду login в файле авторизованных ключей, но это работает только в том случае, если ваши пользователи входят через SSH-ключи, а не через пароль.

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