Das ist mit dem nc- Tool und den ssh-Tunneln ziemlich einfach zu erreichen .
1. Öffnen Sie den SSH-Tunnel
Geben Sie in Ihrer SSH-Sitzung ~Ceine neue Zeile ein. Sie erhalten die Eingabeaufforderung ssh "service console", die folgendermaßen aussieht:
ssh>
Geben Sie den lokalen Vorwärtsbefehl ein , um einen SSH-Tunnel zu öffnen:
ssh> -L22000:targethost:22001
Forwarding port.
Wo targethost
ist der Hostname oder die IP-Adresse des Computers, mit dem Sie verbunden sind?
Angenommen, der SSH-Server auf dem Zielcomputer ist nicht für das Verbieten von Tunneln konfiguriert. Sie haben nun die gewünschte Verbindungsweiterleitung: Der ssh
Client auf Ihrem Computer lauscht auf Port 22000 und leitet den an ihn gesendeten Datenverkehr an den Port 22001 weiter targethost
.
2. Starten Sie einen Netzwerkserver auf dem Remotecomputer
Dies ist so einfach wie das Eingeben des folgenden Befehls in Ihre bereits geöffnete ssh-Sitzung:
remote$ nc -l localhost 22001 | sh
Dadurch wird ein TCP-Server gestartet, der den Port 22001 überwacht - der der Zielport unseres SSH-Tunnels ist - und die empfangenen Daten (vermutlich Shell-Befehle) an eine targethost
Shell-Instanz weiterleitet.
3. Senden Sie Ihr Skript über den Tunnel
local$ cat yourscript.sh | nc localhost 22000
Dadurch wird der Skriptkörper an Ihren SSH-Tunnel gesendet und in einer Shell auf dem ausgeführt targethost
. Sie werden die Ausgabe des Skripts in Ihrem Terminal mit ssh-Sitzung sehen.
Ich stelle außerdem fest, dass der SSH-Tunnel (Schritt 1) in diesem Szenario nicht unbedingt erforderlich ist. Sie können den Server auch öffnen und direkt über das Internet darauf zugreifen. Sie müssen den Tunnel jedoch verwenden, wenn der Zielhost nicht direkt erreicht werden kann (z. B. hinter einem NAT) oder eine ssh-Verschlüsselung gewünscht wird.