SSH Tunnel unter Windows erstellen

Aufbau eines SSH Tunnels mit Windows

Einen Tunnel (mit SSH) zu bauen, bedeutet, dass man eine Terminalverbindung auf einen anderen Rechner herstellt (den Tunnel) und über diese Verbindung (die verschlüsselt ist) wird zusätzlich eine weitere Verbindung geleitet. Dies ist dann der Tunnel-Benutzer.

Da weder bei Windows 7, Windows 8 oder Windows 10 ein SSH Client dabei ist, muss man sich diesen erst besorgen. Der bekannteste ist Putty. Putty hat auch ein Tool für die Kommandozeile (command line). Dieses heist plink und ist ebenfalls auf der Putty Homepage ganz einfach und kostenfrei herunterladbar. In der Regel ist das Komplettpaket (32Bit) die richtige Wahl. Die Datei heißt dann in etwas „putty-0.70-installer.msi"

 

Wie geht nun das Erstellen des Tunnels?

Um nun einen Tunnel zu einem anderen Rechner mit Hilfe eines Dritten aufzubauen, kann man folgende Zeile benutzen

plink.exe -v -pw geheim nutzername@tunnelserver -L 10119:zielserver.de:119

Diese Zeile baut eine SSH Verbindung (Port 22) zu tunnelserver auf und meldet sich mit dem Benutzer nutzername und dem Passwort geheim an. Fortan werden alle Verbindungen zu zielserver.de Port 119 über den lokalen Port 10119 und von dort durch die SSH Verbindung getunnelt. Man man also zielserver.de:119 erreichen möchte, muss manlocalhost:10119 eingeben.
Fertig.

Wichtig ist hierbei, dasszielserver undtunnelserver identisch sein können, aber nicht müssen. Dertunnelserver muss jedoch immer ein Rechner sein, der sowohl vom Ursprungsrechner aus erreichbar ist UND denzielserver erreichen kann.

Beispiel: Erreichen eines MySQL Servers, der nur lokal erreichbar sein soll

Wir stellen uns vor, dass wir bei einem Hoster unserer Wahl (wie 1blu, Strato, 1und1, Domainfactory…) Webspace mieten und in diesem Webspace auch MySQL Datenbanken inklusive sind. Meist sind diese aus Sicherheitsgründen so konfiguriert, dass sie nur lokal erreichbar sind (via IP 127.0.0.1 aka localhost, dem sogenannten Loopback Interface). Lokal bedeutet, dass man nur vom gleichen Rechner aus Zugriff hat. Das ist der Normalfall für kleine und mittelgroße Webseiten. Der Webserver (bzw die PHP oder Python Scripte) sprechen mit dem MySQL Server.

Für die Verwaltung eines Datenbankservers gibt es aber gute Tools, die man lokal, d.h. auf dem eigenen Rechner zuhause ausführen möchte (und muss).

Problem: Wie verbinde ich mich mit dem MySQL Server?

Der MySQL Server ist auf einem Linux-Server mit der IP 1.2.3.4 installiert und lauscht auf Port 3306 (dies ist Standard). Von außen ist dieser Port nicht erreichbar. Auf dem Linux Rechner läuft aber auch ein SSH Server.

Lösung: Wir bauen einen SSH Tunnel um den MySQL zu erreichen.

Wir müssen also über SSH einen Tunnel für Port 3306 schaffen. Dazu bauen wir eine SSH Verbindung zu 1.2.3.4 auf und Tunneln Port 3306.

Wie? So!

plink.exe -v -pw geheim nutzername@1.2.3.4 -L 6603:localhost:3306

Erklärung: Es wird eine SSH Verbindung für den Nutzer zum Rechner 1.2.3.4 aufgebaut. Dort soll ein Tunnel zu localhost Port 3306 aufgebaut werden und auf dem Ursprungsrechner auf Port 6603 (kann auch jeder andere Port sein der frei ist) zur Verfügung gestellt werden.

Nun ist auf dem loken Rechner eine Verbindung zum MySQL Server möglich. Man muss sich nur zu localhost Port 6603 verbinden.

Ich möchte aber ein grafisches Tool benutzen!

Dann hilft nur Putty!

 

Leave a Reply 0 comments

Leave a Reply: