Utilizzo di sudo in una pipe ssh

From RVM Wiki
Jump to navigation Jump to search
  • Se si utilizza sudo in una pipe ssh, ad esempio per eseguire un tar da remoto, sudo non ha un terminale per richiedere la password. Se si utilizza il flag -t per ssh, la password viene richiesta, ma il prompt verrà poi scritto nella pipe ssh, che verrà poi redirezionato nell'archivio tar.
  • Per risolvere la cosa, si utilizza un programma esterno per la richiesta della password. Naturalmente deve essere attivo l'X11 forwarding per pter eseguire comandi X remoti dal server a cui ci si collega
  • Sul server remoto installare:
sudo apt-get install ssh-askpass
  • Verificare che funzioni
SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A ls
  • Dal client, eseguire il tar remoto usando al sintassi:
/usr/bin/ssh myserver.example.com \
  "cd /; SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A tar --one-file-system -cvf - ." \
   | gzip > myserver.tar.gz

Riferimenti