Per sudo c'è un'opzione -S per accettare la password dall'input standard. Ecco la voce man:
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device.
Questo ti permetterà di eseguire un comando come:
echo myPassword | sudo -S ls /tmp
Per quanto riguarda ssh, ho fatto molti tentativi per automatizzare/scrivere il suo utilizzo senza successo. Non sembra esserci alcun modo integrato per passare la password nel comando senza chiedere conferma. Come altri hanno già detto, l'utilità "aspettati" sembra mirare ad affrontare questo dilemma, ma alla fine, l'impostazione della corretta autorizzazione della chiave privata è la strada giusta da percorrere quando si tenta di automatizzarla.
Ho scritto alcuni Applescript che richiedono una password tramite una finestra di dialogo e quindi creano un comando bash personalizzato, come questo:
echo <password> | sudo -S <command>
Non sono sicuro che questo aiuti.
Sarebbe bello se sudo accettasse una password pre-crittografata, così potrei crittografarla all'interno del mio script e non preoccuparmi di echeggiare password in chiaro in giro. Comunque questo funziona per me e per la mia situazione.
Per sudo puoi fare anche questo:
sudo -S <<< "password" command
Per ssh
puoi usare sshpass
:sshpass -p yourpassphrase ssh [email protected]
.
Devi solo scaricare prima sshpass :)
$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]