Ich habe eine .bat
Datei erstellt, die automatisch auf den SSH-Server (Jump Server) zugreift. Jetzt habe ich einige Befehle, die ich in diesem Fenster treffen möchte.
Zum Beispiel eine Ex. (Um Root-Zugriff zu erhalten)
usrun -u root rush
Mit diesem Befehl werde ich aufgefordert, das Passwort einzugeben.
Wie kann ich dies also vollständig durch .bat
Feilen erreichen?
ssh
unix
batch-file
putty
Umang
quelle
quelle
-m
in der Syntax vorgehen soll und welche Befehle ich in der Notepad-Datei verwenden soll..bat
Datei zu erstellen. Sinn ergeben? PS; Ich habe keinen Hintergrund für die Erstellung einer solchen Batch-Datei. Ich bin neu in diesem Zeug. :(Antworten:
Um Befehle automatisch mit PuTTY auszuführen, übergeben Sie mit dem
-m
Schalter eine Textdatei mit den auszuführenden Befehlen , z.Wo das
commands.txt
enthalten würdeDies hilft Ihnen jedoch nicht bei der Eingabe des Kennworts, da es sich um eine Eingabe für den
usrun
Befehl und nicht um einen eigenen Befehl-m
handelt. Ich kenne die nichtusrun
, daher kann ich nicht sagen, ob es eine Möglichkeit gibt, eine andere Methode zu "authentifizieren", statt ein Passwort "einzugeben". Wenn Sie versuchen, die Kennworteingabe zu automatisieren, tun Sie im Allgemeinen etwas Falsches. Es ist ein Sicherheitsrisiko. Überprüfen Sie immer, ob es einen besseren (= sichereren) Weg gibt.Ein weiteres Problem sind weitere Befehle. Wenn alle Befehle, die Sie ausführen möchten, in derselben Umgebung / Shell ausgeführt werden sollen, können Sie sie
commands.txt
zeilenweise anordnen.Beachten Sie jedoch, dass nicht alle SSH-Server mehrere Leitungen unterstützen. Die Mehrheit tut es jedoch. Wenn nicht, können Sie immer Ihre Server- / Shell-spezifische Methode verwenden, um mehrere Befehle in einer einzigen Zeile auszuführen:
Aber wenn die weitere Befehle tatsächlich Subbefehle des ersten Befehls sind, was der Fall ist mit Befehlen wie
su
,sh
,bash
,ssh
,ftp
, etc. (und könnte den Fall sein , mit demusrun
) sind die weitere Befehle tatsächlich eine Eingabe an den ersten, nicht eigenständigen Befehle der Top-Level-Umgebung / Shell. Es ist tatsächlich ein identisches Problem wie das oben beschriebene Problem bei der Passworteingabe.Im Gegensatz zum Kennwortproblem verfügt der primäre Befehl bei Unterbefehlen möglicherweise über einen anderen Mechanismus, um sie bereitzustellen, anstatt Eingaben zu verwenden.
Vor diesem Hintergrund können Sie anstelle von PuTTY Plink (PuTTY-Befehlszeilenverbindungstool) verwenden. Es ist ein Tool aus dem PuTTY-Paket, das wie PuTTY funktioniert, aber eine Konsolen- und keine GUI-Anwendung ist. Als solches kann es eine Eingabe / Ausgabe-Umleitung verwenden. So können Sie sogar ein Kennwort oder Unterbefehle des primären Befehls aus einer Datei umleiten, als hätten Sie sie auf einer Konsole eingegeben. Außerdem ist der Plink das Werkzeug zur Automatisierung von Aufgaben , nicht für PuTTY.
Alternativ können Sie KiTTY mit seinem
-cmd
Schalter verwenden, der das tut, was Sie wollen. Das KiTTY ist eine GUI-Anwendung (es ist ein Klon von PuTTY). Sein-cmd
Schalter simuliert im Grunde das Tippen, so dass er keine Probleme mit Eingaben (Passwort und Unterbefehlen) für Befehle hat. Aber ich fand es ziemlich unzuverlässig. Ich kann es nicht wirklich empfehlen. Aber vielleicht finden Sie es für Ihre Aufgabe ausreichend.quelle
.bat
aussieht. C: \ Users_my_user_ \ Putty.exe -Lade " Jump_Server " -l Benutzername -pw Passwort -m " Textdateipfad mit Befehlen " Dies bringt mich erfolgreich dorthin , wo ich will. Nun sollte es technisch gesehen den Befehl annehmen, den ich in der Textdatei hinterlassen habe, den es aber nicht annimmt. Die Textdatei enthält nur eineusrun -u root rush
Idee, was hier falsch ist?usrun
Sie in meiner aktualisierten Antwort. + Wenn die weiteren Befehle Unterbefehle von sind , können Sie sie nicht mit dem Eingeben eines Kennworts kombinieren (zumindest nicht mit einfachen Befehlszeilentools)