Вот что сработало для меня, учитывая, что я хочу сохранить аутентификацию по паролю (поэтому я не хочу использовать NOPASSWD
или ключи) - в Ubuntu 14.04:
- "Откройте"
sudo
на удаленном компьютере, отключив tty_tickets
через временный файл в /etc/sudoers.d/
(который должен поддерживаться в Debian, см. /etc/sudoers.d/README
), и "Обновите кэшированные учетные данные пользователя" , который "увеличивает время ожидания sudo еще на 15 минут"
- Запустите
rsync
с помощью sudo
как показано в других ответах
- "Закрыть"
sudo
на удаленном компьютере, удалив временный файл в /etc/sudoers.d/
, который повторно включает tty_tickets
... или с помощью командной строки:
ssh -t $REMOTEPC 'echo "Defaults !tty_tickets" | sudo tee /etc/sudoers.d/temp; sudo -v'
rsync -aP -e 'ssh' '--rsync-path=sudo rsync' /etc/pulse/client.conf $REMOTEPC:/etc/pulse/client-copy.conf
ssh -t $REMOTEPC 'sudo rm -v /etc/sudoers.d/temp; sudo -v'
Вот ответы, которые я получаю при выполнении этих команд на локальном компьютере:
$ ssh -t $REMOTEPC 'echo "Defaults !tty_tickets" | sudo tee /etc/sudoers.d/temp; sudo -v'
remoteuser@$REMOTEPC's password:
[sudo] password for remoteuser:
Defaults !tty_tickets
Connection to $REMOTEPC closed.
$ rsync -aP -e 'ssh' '--rsync-path=sudo rsync' /etc/pulse/client.conf $REMOTEPC:/etc/pulse/client-copy.conf
remoteuser@$REMOTEPC's password:
sending incremental file list
client.conf
1269 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)
$ ssh -t $REMOTEPC 'sudo rm -v /etc/sudoers.d/temp; sudo -v'
remoteuser@$REMOTEPC's password:
removed ‘/etc/sudoers.d/temp’
[sudo] password for remoteuser:
Connection to $REMOTEPC closed.
Обратите внимание, что sudo -v
следует запускать после каждого времени файлов в /etc/sudoers.d/
, поэтому изменения в них принимаются.