как использовать rsync (используя ssh без пароля), с sudo только на локальной стороне?

Эта команда отлично работает для меня без пароля ssh:

rsync -aqve ssh ${user}@${remote_host}:/etc/bind /tmp/etc/bind 

Поскольку я хотел бы rsync напрямую подключиться к своему локальному / etc / bind с правами root, я попытался:

 sudo rsync -aqve ssh ${user}@${remote_host}:/etc/bind /etc/bind 

Но теперь я получаю приглашение пароля (это плохо).

Как исправить эту строку, чтобы скопировать непосредственно на локальный / etc / bind без подсказки пароля?

  • программа должна выполняться как root любым пользователем и может быть расположена в любом месте
  • Вызовите sudo из скрипта, вызванного xbindkeys
  • sudo askpass: спросить у другого tty
  • Удалив vim-minimal, я удалил sudo
  • Как разрешить пользователям без полномочий root управлять службой systemd с помощью экземпляров?
  • Различия между sudo и su в наследующей среде
  • can not добавить пользователя в группу sudo в centOS 7 i386 (нет GUI, его минимальный)
  • Отключите некоторые программы от sudo
  • One Solution collect form web for “как использовать rsync (используя ssh без пароля), с sudo только на локальной стороне?”

    Когда вы делаете это со своим собственным пользователем, вы используете ключи SSH в своем собственном каталоге $HOME/.ssh/ . Когда вы делаете это как root, используя sudo , ssh будет выглядеть в домашнем каталоге root для каталога .ssh – и ваших ключей там нет.

    Вот четыре способа исправить это: любой из них должен работать:

    1. В качестве пользователя root создайте новые ключи ssh и добавьте открытую часть в authorized_keys для вашего пользователя на удаленном сервере
    2. Скопируйте собственные SSH-ключи в корневой .ssh . (Убедитесь, что вы не перезаписываете существующие ключи!)
    3. Предоставьте свой собственный пользовательский доступ для записи в целевой каталог. Рассмотрите последствия безопасности перед тем, как выбрать этот метод!
    4. Как говорит Крис Даун, используйте существующие ключи SSH, используя команду

       $ sudo rsync -aqve 'ssh -i ~user/.ssh/id_rsa' \ ${user}@${remote_host}:/etc/bind /etc/bind 
    Linux и Unix - лучшая ОС в мире.