Rsync с ssh-keygen для пользователя ssh с ограниченными командами и указанным каталогом

У меня есть две машины, локальная и удаленная.

Я хочу автоматически создавать резервные копии своих файлов и папок на удаленном компьютере, используя rsync для передачи файлов и папок, используя ssh-keygen для автоматического входа на удаленный компьютер.

Я могу сделать это как ssh root, но это будет немного рискованно для безопасности: кто-то может войти напрямую на удаленную машину как root, если локальные файлы были скомпрометированы.

Я попытался rssh, но я не мог войти в систему автоматически, используя ssh-keygen.

То, что я ищу, - это способ создания пользователя ssh с ограниченным доступом к командам оболочки и доступом только к определенному безопасному каталогу для автоматического входа без вреда для удаленной машины.

2 ответа

Решение

Вы можете ограничить выполнение команды при использовании пары ключей ssh, используя command="...." в ~/.ssh/authorized_keys файл. Пример взял отсюда:

$ cat ~/.ssh/authorized_keys 
command="/usr/local/bin/rsync --server -vlogDtprz --delete . /tmp",no-pty,no-agent-forwarding,no-port-forwarding ssh-rsa AAAAB3NzaC1y[...] kattoo@spaghetti

rsync включает в себя пример сценария rrsync, который может ограничивать rsync.

Пример:

command="/usr/local/bin/rrsync -ro /data",no-port-forwarding,no-X11-forwarding,no-pty ssh-rsa [...]

Таким образом, вам не нужно жестко кодировать командную строку от клиента на сервере.

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