Esto es lo que funcionó para mí, teniendo en cuenta que quiero mantener la autenticación de contraseña (por lo que no quiero usar NOPASSWD
o claves) - en Ubuntu 14.04:
- "Abrir"
sudo
en la máquina remota deshabilitando a tty_tickets
través de un archivo temporal en /etc/sudoers.d/
(que debería ser compatible con Debian, ver /etc/sudoers.d/README
), y "Actualizar las credenciales en caché del usuario", que "extiende el tiempo de espera de sudo por otros 15 minutos"
- Ejecute
rsync
con sudo
como se muestra en otras respuestas
- "Cerrar"
sudo
en la máquina remota eliminando el archivo temporal en /etc/sudoers.d/
, que vuelve a habilitartty_tickets
... o, con líneas 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 son las respuestas que obtengo al ejecutar estos comandos en la 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.
Tenga en cuenta que sudo -v
debe ejecutarse después de cada archivo de entrada /etc/sudoers.d/
, por lo que se aceptan los cambios allí.