У меня две машины, локальная и удаленная.
Я хочу автоматически создавать резервные копии своих файлов и папок на удаленном компьютере, используя 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 [...]
Таким образом, вам не нужно жестко кодировать командную строку с клиента на сервере.