Guten Morgen, ich muss einen Netcat-Befehl ausführen und die Ausgabe erhalten, um die Ausarbeitung auf meinem lokalen PC (Windows) durchzuführen. Ich brauche nur die „Verbindung gut/schlecht“
Jetzt verwende ich PuTTY mit dem folgenden Schritt
- Windows -> PuTTY
- PuTTY -> SSH auf "Server1" (Linux Suse)
- Server1-Shell -> SSH auf "Server2" (Linux Suse)
- Server2-Shell ->
nc -zv 10.xx.xx.xx yyyy
Ich möchte ein einfaches Skript erstellen, um den Prozess zu automatisieren. Ich versuche dies über Batch und Plink. Ich kann andere Software oder Sprachen verwenden, bin aber kein wirklicher Experte
Ich kann nichts auf dem Linux-Server installieren, da es sich um Live-Server handelt und ich nicht zu viele Versuche unternehmen kann, aber ich muss es unbedingt versuchen. Diese Schritte sind wegen eines Firewall-Problems erforderlich, da Server 1 den Endserver nicht sieht, aber Server 2, der wiederum den Endserver sieht
Ich habe den folgenden Befehl strukturiert, bin mir aber nicht sicher, ob er funktioniert
plink -ssh %server1% -pw %password% -no-antispoof -proxycmd "ssh %User%@%server2% -pw %password%" -m commands.txt > result.txt 2>&1
Antwort1
Um zunächst einen ssh
Befehl auf Server1 auszuführen – um eine Verbindung zu Server2 herzustellen und dort einen Befehl auszuführen – lautet die Syntax:
plink -ssh %server1% -pw %password% -no-antispoof "ssh %User%@%server2% nc -zv 10.xx.xx.xx yyyy" > result.txt 2>&1
Sie müssen jedoch das Passwort an übergeben ssh
. Dazu müssen Sie -t
einen Schalter hinzufügen plink
, um pty zu aktivieren und das Passwort von Server2 als Eingabe an zu übergeben plink
:
echo %password2%|plink -t ...
Beachten Sie, dass dadurch das Passwort Ihres Servers2 in der Prozessliste des lokalen Computers angezeigt wird. Da Sie dies jedoch bereits für das Passwort von Server1 tun, stört Sie das wahrscheinlich nicht. Letzteres kann jedoch durch die Verwendung -pwfile
eines Schalters vermieden werden. Und Ersteres durch die Verwendung anderer Arten von Eingabeumleitungen.