Назад | Перейти на главную страницу

Создайте пользователя SSH для Unison с наименьшим количеством прав

Я хотел бы предоставить общий доступ к каталогу на моем сервере, чтобы коллега мог синхронизировать его через Unison (двухсторонняя синхронизация). Я не хочу, чтобы он мог читать файлы на сервере через ssh-доступ. Было бы лучше, если бы пользователь ssh не мог войти в систему, а синхронизировался только через унисон. Как я могу этого добиться?

Вы можете использовать command= вариант в authorized_keys файл для принудительного запуска Unison, когда пользователь подключается через ssh. Это означает, что они не могут получить оболочку входа в систему. Вы также можете отключить переадресацию портов и другие функции ssh в этом файле.

В ~/.ssh/authorized_keys линия будет выглядеть примерно так (обратите внимание на -server вариант для Unison):

command="/usr/bin/unison -server",no-port-forwarding,no-X11-forwarding,no-pty,no-agent-forwarding,no-user-rc ssh-rsa AAAAB3NzaC1y....

Я не проверял это.

Для получения дополнительной информации о command= параметр ssh, см. Ограничить исполняемые команды SSH авторизованными ключами.

В качестве альтернативы вы можете использовать переадресацию портов VPN или ssh для шифрования соединения в методе сокета, о котором упоминал Майк Пирс выше, но это, вероятно, будет более сложным.