Aqui está o que funcionou para mim, considerando que eu quero manter a autenticação por senha (para não usar NOPASSWD
chaves ou) - no Ubuntu 14.04:
- "Abra"
sudo
na máquina remota desativando tty_tickets
através de um arquivo temporário no /etc/sudoers.d/
(que deve ser suportado no Debian, consulte /etc/sudoers.d/README
) e "Atualize as credenciais em cache do usuário", que "prolonga o tempo limite do sudo por mais 15 minutos"
- Execute o
rsync
com sudo
como mostrado em outras respostas
- "Fechar"
sudo
na máquina remota removendo o arquivo temporário /etc/sudoers.d/
, que reativatty_tickets
... ou, com linhas de comando:
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'
Estas são as respostas que recebo ao executar estes comandos na máquina local:
$ 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.
Observe que sudo -v
deve ser executado após cada vez que os arquivos /etc/sudoers.d/
são inseridos, para que as alterações sejam aceitas.