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

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

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

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

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

Я попробовал rssh, но не смог автоматически войти в систему с помощью ssh-keygen.

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

Вы можете ограничить запуск команды при использовании пары ключей 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 [...]

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