Für sudo gibt es eine Option -S, um das Passwort von der Standardeingabe zu akzeptieren. Hier ist der Mann-Eintrag:
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device.
Dadurch können Sie einen Befehl wie den folgenden ausführen:
echo myPassword | sudo -S ls /tmp
Was ssh betrifft, habe ich viele Versuche unternommen, seine Verwendung zu automatisieren/skripten, ohne Erfolg. Es scheint keine eingebaute Möglichkeit zu geben, das Passwort ohne Aufforderung an den Befehl zu übergeben. Wie andere bereits erwähnt haben, scheint das Dienstprogramm "erwartet" darauf abzuzielen, dieses Dilemma zu lösen, aber letztendlich ist das Einrichten der richtigen Autorisierung des privaten Schlüssels der richtige Weg, wenn Sie versuchen, dies zu automatisieren.
Ich habe ein Applescript geschrieben, das über ein Dialogfeld zur Eingabe eines Passworts auffordert und dann einen benutzerdefinierten Bash-Befehl wie diesen erstellt:
echo <password> | sudo -S <command>
Ich bin mir nicht sicher, ob das hilft.
Es wäre schön, wenn sudo ein vorverschlüsseltes Passwort akzeptieren würde, damit ich es in meinem Skript verschlüsseln könnte und mir keine Gedanken darüber machen müsste, Klartext-Passwörter zu wiederholen. Dies funktioniert jedoch für mich und meine Situation.
Für sudo können Sie dies auch tun:
sudo -S <<< "password" command
Für ssh
Sie können sshpass
verwenden :sshpass -p yourpassphrase ssh [email protected]
.
Sie müssen nur zuerst sshpass herunterladen :)
$ apt-get install sshpass
$ sshpass -p 'password' ssh [email protected]