¿Cuál es la forma correcta de sudo sobre SSH?

Resuelto darkfeline asked hace 12 años • 8 respuestas

Tengo un script que ejecuta otro script a través de SSH en un servidor remoto usando sudo. Sin embargo, cuando escribo la contraseña, aparece en el terminal. De lo contrario funciona bien.

ssh user@server "sudo script"

¿Cuál es la forma correcta de hacer esto para poder escribir la contraseña a sudotravés de SSH sin que aparezca la contraseña mientras escribo?

darkfeline avatar Apr 25 '12 13:04 darkfeline
Aceptado

Otra forma es utilizar -topen para ssh:

ssh -t user@server "sudo script"

Ver man ssh:

 -t      Force pseudo-tty allocation.  This can be used to execute arbi-
         trary screen-based programs on a remote machine, which can be
         very useful, e.g., when implementing menu services.  Multiple -t
         options force tty allocation, even if ssh has no local tty.
dave4420 avatar Apr 25 '2012 09:04 dave4420

Pude automatizarlo completamente con el siguiente comando:

echo pass | ssh -tt user@server "sudo script"

Ventajas:

  • sin solicitud de contraseña
  • no mostrará la contraseña en el historial de bash de la máquina remota

Con respecto a la seguridad: como dijo Kurt , ejecutar este comando mostrará su contraseña en su historial de bash local, y es mejor guardar la contraseña en un archivo diferente o guardar todos los comandos en un archivo .sh y ejecutarlo. NOTA: El archivo debe tener los permisos correctos para que solo los usuarios autorizados puedan acceder a él.

ofirule avatar Nov 07 '2018 12:11 ofirule