Wie kann ich im Skript einem Prozess das passwort einspeisen?
Hi zusammen, statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen. Aber wie kann ich das Prompt erkennen und ihm das Passwort übergeben? Danke im voraus! peter
On Thursday 09 September 2004 16:58, Matthias Dort wrote:
Hi zusammen,
statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen. Aber wie kann ich das Prompt erkennen und ihm das Passwort übergeben?
Schau mal EXPECT an. Es kann das!
Danke im voraus!
peter
-- Ronald Wiplinger Senior Software Engineer AGP Telecom Co. Ltd. Tel. (O) +886-2-2741-7890 # 7303, (M) +886-939-77-55-16 (from USA dial (408)253-3153 # 7303)
Matthias Dort
Hi zusammen,
statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen. Aber wie kann ich das Prompt erkennen und ihm das Passwort übergeben?
Tcl und Expect sind eine Freunde. Ich weiß nicht, ob in den aktuellen SuSE-Distributionen noch die Scriptsammlung von Expect mitgeliefert wird, da gibt es so schöne Sachen wie Kibitz, mkpasswd usw. In der Doku zu Expect wird deine Frage als erstes Beispiel beschrieben, daher gebe ich einfach mal die wenigen Zeilen zur Einbindung in bash wider: ,----[ Password Generierung durch Expect ] | spawn passwd [lindex $argv 0] | set password [lindex $argv 1] | expect "password:" | send "$password\r" | expect "password:" | send "$password\r" | expect eof `---- In diesem Beispiel wird das Password als Eingabe erwartet, hier kannst du auch ein echo "geheim" einbauen, um ein bekanntes Password zu übergeben. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8C183C8622115328
Hallo,
Matthias Dort
Hi zusammen,
statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen. Aber wie kann ich das Prompt erkennen und ihm das Passwort übergeben?
Im Nachtrag zu meiner Mail noch ein paar Sätze. Expect wird noch in SuSE-9.0 mitgeliefert, in /usr/share/doc/packages/expect findest du ein Script 'autopasswd' daß deinen Wünschen entspricht. -Dieter -- Dieter Klünter | Systemberatung http://www.dkluenter.de GPG Key ID:8C183C8622115328
Hallo Matthias, hallo Leute, Am Donnerstag, 9. September 2004 10:58 schrieb Matthias Dort:
statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen.
Falsche Frage, IMHO ;-) telnet ist unsicher, weil das Passwort im Klartext übertragen wird. Wenn möglich, verwende SSH. SSH kennt das Konzept von Public/Private Key und kann deshalb auch ohne Passworteingabe genutzt werden. Siehe dazu 8.4. Wie geht SSH ohne Passwort? http://suse-linux-faq.koehntopp.de/q/q-ssh-without_passwd.html 8.3. Wie erstellt man einen SSH-Key? Wie kommt der Key auf den Zielrechner? http://suse-linux-faq.koehntopp.de/q/q-ssh-keygen.html Und wenn Du in authorized_keys noch command="/pfad/zum/ausgeführten/befehl param1 param2" einfügst, kann der Key auf dem Zielrechner nur für diesen einen Befehl genutzt werden. Details zu dieser Beschränkung in man sshd (dort nach command= suchen). Gruß Christian Boltz --
8.1 ist nicht 9.0 Also in der Quersumme schon ;-) [> Henne Vogelsang und Manfred Tremmel in suse-linux]
On Fri, 10 Sep 2004, Christian Boltz wrote:
Hallo Matthias, hallo Leute,
Am Donnerstag, 9. September 2004 10:58 schrieb Matthias Dort:
statt das für einen Prozess (telnet) erforderliche Passwort am Prompt einzugeben, möchte ich im Skript dem Prozess das Passwort einspeisen.
Falsche Frage, IMHO ;-)
telnet ist unsicher, weil das Passwort im Klartext übertragen wird. Wenn möglich, verwende SSH.
SSH kennt das Konzept von Public/Private Key und kann deshalb auch ohne Passworteingabe genutzt werden. Siehe dazu
8.4. Wie geht SSH ohne Passwort? http://suse-linux-faq.koehntopp.de/q/q-ssh-without_passwd.html
8.3. Wie erstellt man einen SSH-Key? Wie kommt der Key auf den Zielrechner? http://suse-linux-faq.koehntopp.de/q/q-ssh-keygen.html
Und wenn Du in authorized_keys noch command="/pfad/zum/ausgeführten/befehl param1 param2" einfügst, kann der Key auf dem Zielrechner nur für diesen einen Befehl genutzt werden. Details zu dieser Beschränkung in man sshd (dort nach command= suchen).
Wenn die remote Seite von ssh (inclusive scp) nicht zusammenarbeitet wegen der (Un-)Kompatibiletät der SSH (propretär!), wird ständig das Passwort abgefragt, genau wie bei telnet auch. Daher denke ich an so was wie coprocess bei ksh, z.B. "|&" in Verbindung mit "print -p", allerdings darf ich nicht neben bash noch GnuKsh installieren. Gibt es etwas, was mit |& bei ksh equivalent ist, bei bash? Das command `coproc` existiert nicht. Danke allen für die Vorschläge! Schönes Wochenende! peter
Gruß
Christian Boltz --
8.1 ist nicht 9.0 Also in der Quersumme schon ;-) [> Henne Vogelsang und Manfred Tremmel in suse-linux]
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (4)
-
Christian Boltz
-
Dieter Kluenter
-
Matthias Dort
-
Ronald Wiplinger