Hace unos días necesitaba ejecutar un par de comandos en un servidor remoto, para lo cuál tenemos una sintáxis como esta:
$ ssh -p66 hvivani@server "cd /home/hvivani/backup/; ls -l"
Vean que separamos los comandos que queremos ejecutar con “;”
Ahora bien, que pasa si necesito ejecutar algo así ?
$ ssh -p66 hvivani@server "cd /etc;sudo vi sudoers"
Obtendremos el siguiente error:
hvivani@server's password:
sudo: sorry, you must have a tty to run sudo
Para ejecutar comandos remotos con sudo por ssh, deberemos utilizar el parámetro “-t” que creará una pseudo terminal tty para permitirnos la ejecución:
$ ssh -t -p66 hvivani@server "cd /etc;sudo vi sudoers"