¿Cómo pasar la contraseña a su/sudo/ssh sin anular el TTY?

Resuelto n-alexander asked hace 16 años • 22 respuestas

Estoy escribiendo un programa C Shell que hará suo sudoo ssh. Todos quieren sus contraseñas en la entrada de la consola (el TTY) en lugar de en la entrada estándar o en la línea de comando.

¿Alguien sabe una solución?

Configurar sin contraseña sudono es una opción.

esperarPodría ser una opción, pero no está presente en mi sistema simplificado.

n-alexander avatar Oct 24 '08 18:10 n-alexander
Aceptado

Para sudo hay una opción -S para aceptar la contraseña de la entrada estándar. Aquí está la entrada del hombre:

    -S          The -S (stdin) option causes sudo to read the password from
                the standard input instead of the terminal device.

Esto le permitirá ejecutar un comando como:

echo myPassword | sudo -S ls /tmp

En cuanto a ssh, he hecho muchos intentos de automatizar/programar su uso sin éxito. No parece haber ninguna forma integrada de pasar la contraseña al comando sin que se le solicite. Como otros han mencionado, la utilidad " expect " parece estar dirigida a abordar este dilema pero, en última instancia, configurar la autorización de clave privada correcta es el camino correcto a seguir cuando se intenta automatizar esto.

Jesse Webb avatar Dec 01 '2010 17:12 Jesse Webb

Escribí algo de Applescript que solicita una contraseña a través de un cuadro de diálogo y luego crea un comando bash personalizado, como este:

echo <password> | sudo -S <command>

No estoy seguro si esto ayuda.

Sería bueno si sudo aceptara una contraseña previamente encriptada, para poder cifrarla dentro de mi secuencia de comandos y no preocuparme por hacer eco de contraseñas de texto sin cifrar. Sin embargo, esto funciona para mí y mi situación.

mlambie avatar Dec 09 '2008 06:12 mlambie

Para sshusted puede utilizar sshpass: sshpass -p yourpassphrase ssh user@host.

Solo necesitas descargar sshpass primero :)

$ apt-get install sshpass
$ sshpass -p 'password' ssh username@server
Edward avatar Jan 13 '2012 12:01 Edward

Para sudo también puedes hacer esto:

sudo -S <<< "password" command
Jahid avatar Jun 09 '2015 14:06 Jahid