Solución:
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 realizado muchos intentos de automatizar / realizar un script de su uso sin éxito. No parece haber ninguna forma incorporada de pasar la contraseña al comando sin preguntar. Como han mencionado otros, la utilidad “esperar” parece que tiene como objetivo 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.
Escribí algo de Applescript que solicita una contraseña a través de un cuadro de diálogo y luego crea un comando de bash personalizado, como este:
echo <password> | sudo -S <command>
No estoy seguro de si esto ayuda.
Sería bueno si sudo aceptara una contraseña preencriptada, para poder encriptarla dentro de mi script y no preocuparme por hacer eco de contraseñas de texto sin cifrar. Sin embargo, esto funciona para mí y para mi situación.
Para ssh
puedes usar sshpass
: sshpass -p yourpassphrase ssh [email protected]
.
Solo necesitas descargar sshpass primero 🙂
$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]