Разрешить scp, но не ssh - без scponly

8

Я переношу сервер Debian на Ubuntu 16.04. Один из пакетов на сервере Debian - scponlyэто оболочка, которая разрешает ssh-соединения только для scp-целей (без входа в систему или запуска чего-либо, кроме scpдвоичного файла). Подробности можно найти здесь . Этот пакет был в Debian уже как минимум через 2 обновления физического сервера, бесчисленное множество обновлений ОС и, вероятно, датируется примерно 2007 годом.

scponlyотсутствует в любом репозитории 16.04 и не компилируется на панели запуска. Несмотря на то, что я вполне способен установить его из исходных текстов, у меня возник вопрос, а есть ли в последние 10 с лишним лет лучший способ настройки ssh для разрешения только команд scp, то есть более дружественный для Ubuntu 16.04 и менее основанный на dim и далекое прошлое. Любые идеи?

abligh
источник

Ответы:

15

Согласно этому ответу serverfault.com Разрешить SCP, но не фактический вход в систему с использованием SSH , один из поддерживаемых в настоящее время способов - использование rssh, доступное из universeрепозитория:

sudo apt-add-repository universe

sudo apt-get install rssh

Чтобы разрешить SCP, вы должны раскомментировать соответствующую строку в /etc/rssh.confфайле (плюс любые другие протоколы, которые вы хотите включить):

allowscp
#allowsftp
#allowcvs
#allowrdist
#allowrsync
#allowsvnserve

Тогда нужно просто сменить оболочку входа пользователя на оболочку rssh, например

sudo chsh -s /usr/bin/rssh steeldriver

Затем вы можете проверить, работает ли SCP, например:

$ scp steeldriver@localhost:~/Pictures/somefile.png ./
steeldriver@localhost's password: 
somefile.png                                                               100%   34KB  33.7KB/s   00:00    
$

но SSH должен потерпеть неудачу с сообщением отклонения как

$ ssh steeldriver@localhost
steeldriver@localhost's password: 
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.13.0-88-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

Last login: Wed Jul  6 16:23:47 2016 from localhost

This account is restricted by rssh.
Allowed commands: scp

If you believe this is in error, please contact your system administrator.

Connection to localhost closed.

Обратите внимание, что нет необходимости добавлять /usr/bin/rsshв список разрешенных оболочек для входа в / etc / shells

steeldriver
источник
Спасибо. Проголосовал некоторое время назад и сегодня проверил, работает ли он так принято.
abligh