Ich habe ein Expect-Skript, das über ssh eine Verbindung zu einigen Routern herstellt. Alle diese Router haben das gleiche Passwort (ich weiß, es ist falsch), und das Skript muss dieses Passwort kennen, um sich mit den Routern verbinden zu können. Derzeit wird das Kennwort als Argument in der Befehlszeile an mein Skript übergeben. Dies bedeutet jedoch, dass in meiner .bash_history-Datei sowie in den ausgeführten Prozessen eine Ablaufverfolgung für dieses Kennwort vorhanden ist. Stattdessen möchte ich, dass der Benutzer nach einem Passwort gefragt wird, wenn möglich stillschweigend.Wie kann ich ein Expect-Skript zur Eingabe eines Passworts veranlassen?
Wissen Sie, ob es möglich ist, den Benutzer zur Eingabe eines Passworts mit zu erwarten?
Vielen Dank.
Bearbeiten: wenn ich eine Verbindung zu Servern anstelle von Routern würde, würde ich wahrscheinlich SSH-Schlüssel anstelle von Passwörtern verwenden. Aber die Router, die ich verwende, unterstützen nur Kennwörter.
Cooler Dank! Es ist erstaunlich, wie intolerant diese Sprache ist: Ich schrieb "set pass $ expect_out (1, string)", mit einem Leerzeichen vor dem Wort "string", und es bombardiert. Ich kann auch nicht viel Dokumentation finden. Ich wünschte, es gäbe eine andere Lösung als erwartet. Wie auch immer, vielen Dank. – MiniQuark
"kann nicht viel Dokumentation finden"?!? Es gibt ein ganzes Buch, das allgemein als so gut geschrieben gilt, dass es keine zweite Auflage benötigt. Ernsthaft, überprüfe das Buch. –
Re: ein Leerzeichen zwischen "1" und "string" - Tcl (und daher erwarten) hat keine mehrdimensionalen Arrays. Der Array-Schlüssel ist nur eine Zeichenfolge und "1, Zeichenfolge" und "1, Zeichenfolge" sind unterschiedlich. –