Wie gebe ich Befehle in PuTTY ein, indem ich eine Batch-Datei erstelle?

3

Ich habe eine .batDatei 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 .batFeilen erreichen?

Umang
quelle
Ich weiß nicht, wie ich -min der Syntax vorgehen soll und welche Befehle ich in der Notepad-Datei verwenden soll.
Umang
Unix und Putty und Batch? Verzeih mir, dass ich Putty eine Weile nicht mehr benutzt habe, und Gott sei Dank. Es war ein Werkzeug, das ich in der Schule verwendet habe, als es mir aufgezwungen wurde, aber jetzt verwende ich viel bessere Werkzeuge. Ich schweife ab. Wenn es sich um einen Batch handelt, den Sie suchen, dann sprechen Sie über Windows. Ich würde ein Windows-Tool vorschlagen, das das Windows-Stammverzeichnis git-scm.com/download/win verwendet . Es gibt viele, aber dieser ist im Vergleich mit Putty genau richtig, läuft aber mit Windows viel besser. "Linux" -Befehle, aber in einem Windows- und Windows-Verzeichnis.
Ejbytes
@ejbytes: Danke Kumpel für deine Antwort. Anscheinend konnte ich meinen genauen Fall nicht erklären. Lassen Sie mich nur sagen, was ich hier vorhabe. Ich habe einen Putty dabei, über den ich den Jump-Server (das ist Unix) verbinde. Ich besitze ein Windows-System, über das ich Putty verwende. Um diesen Jump-Server zu verbinden, plane ich, eine .batDatei zu erstellen. Sinn ergeben? PS; Ich habe keinen Hintergrund für die Erstellung einer solchen Batch-Datei. Ich bin neu in diesem Zeug. :(
Umang

Antworten:

4

Um Befehle automatisch mit PuTTY auszuführen, übergeben Sie mit dem -mSchalter eine Textdatei mit den auszuführenden Befehlen , z.

putty.exe -ssh user@host  -m commands.txt

Wo das commands.txtenthalten würde

usrun -u root rush

Dies hilft Ihnen jedoch nicht bei der Eingabe des Kennworts, da es sich um eine Eingabe für den usrunBefehl und nicht um einen eigenen Befehl -mhandelt. Ich kenne die nicht usrun, 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.txtzeilenweise anordnen.

command1
command2

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:

command1 && command2

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 dem usrun) 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.

echo usrun -u root rush>input.txt
echo password>input.txt
echo command_for_usrun>input.txt
plink -ssh user@host < input.txt

Alternativ können Sie KiTTY mit seinem -cmdSchalter verwenden, der das tut, was Sie wollen. Das KiTTY ist eine GUI-Anwendung (es ist ein Klon von PuTTY). Sein -cmdSchalter 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.

Martin Prikryl
quelle
Martin, vielen Dank für deine ausführliche Erklärung. Sehr geschätzt. Einige Fragen tauchten bei Ihrer Antwort auf, wenn Sie mir auch dabei helfen können. 1. Hier wie meine .bataussieht. 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 eine usrun -u root rushIdee, was hier falsch ist?
Umang
2. Ich gebe das Passwort manuell ein - das ist okay !! Aber was ist mit den weiteren Befehlen? Kann ich sie in dieselbe Textdatei einfügen? Danke noch einmal.
Umang
In Bezug auf die zweite Option, über die Sie sprechen, ist es schwierig, diese Anwendung zu verwenden, da ich sie nicht für meinen persönlichen Gebrauch verwenden werde. Hoffe, Sie bekommen mich :) Wäre toll, wenn Sie nur in Putty helfen können!
Umang
Weitere Befehle finden usrunSie 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)
Martin Prikryl
+ siehe meinen Hinweis für Kitty
Martin Prikryl