2

Я копирую свою локальную машину на удаленный сервер. Поскольку я хочу сделать резервную копию всей локальной машины, даже файлов, к которым мой локальный пользователь обычно не имеет доступа, я делаю это с помощью sudo, поэтому команда выглядит как sudo rsync -M--fake-super --other-arguments / me@server:/backup/location .

Проблема заключается в том, что ssh пытается использовать конфигурацию root ssh и сертификаты, которые явно не настроены. Недавно я начал ссылаться на сервер по псевдониму, определенному в ~/.ssh/config и метод перестал работать правильно.

Вопрос: есть ли способ, которым я могу использовать права доступа sudo, но сохраняя конфигурацию ssh моего обычного пользователя?

3 ответа3

3

Я пришел к решению, основанному на идее Брайана о ручном выборе ssh-ключа. К этому я добавил опцию -F которая указывает путь к конфигурации. Теперь аргумент, который я добавляю в rsync, выглядит следующим образом: -e "ssh -i $HOME/.ssh/id_rsa -F $HOME/.ssh/config" .

1

Я думаю, что вы должны сделать это "наоборот", ssh на удаленную машину и rsync оттуда, как указано: http://en.wikibooks.org/wiki/OpenSSH/Cookbook/Automated_Backup

$ rsync -e "ssh -t -l bkupacct" --rsync-path='sudo rsync' -av bkupacct@www.example.org:/var/www/ /tmp/
1

Чтобы изменить имя пользователя для подключения ssh, созданного пользователем root, используйте следующий синтаксис в /root/.ssh/config:

Host server
User nonrootusername

Если вам нужен ключ RSA для входа на удаленный сервер, укажите местоположение открытого ключа для rsync следующим образом:

sudo rsync -e "ssh -i /path/to/rsa/key.pub" ...

Закомментируйте этот псевдоним сервера; это, вероятно, не поможет вам в этом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .