Main /

Remote Desktop Ssh Tunnel

Remote Desktop Ssh Tunnel

Windows Remote Desktop (rdp) über ssh tunneln

Die Ausgangssituation

in dem heimischen privaten Netzwerk befinden sich zwei Server:

  • ein Linux-Server (myserver.dyndns.com) der von außen per ssh auf einem beliebigen Port (pssh) erreichbar ist.
  • ein Windows-Server (rwin) der von intern über Remote Desktop auf dem rdp Standard-Port 3389 erreichbar ist.

Das Ziel

Ziel ist auf rwin per Remote Desktop von einem beliebigen PC übers Internet zugreifen zu können. Wie kann man das erreichen?

Der Weg

Wir brauchen:

  • die interne IP-Adresse des Windows Servers, z.B. 192.168.1.100
  • die IP, bzw. den Namen des Linux-Servers, so wie er von außen sichtbar ist (z.B. myserver.dyndns.com)
  • den ssh-port auf dem linux-Server. Standardmäßig ist dies 22, wird aber gerne verändert. In unserm Beispiel wird 888 verwendet.
  • benutzername/passwort auf dem linux-Server
  • benutzername/passwort auf dem Windows-Server

Linux Server

auf myserver.dyndns.com muss einfach nur sshd laufen. Wenn man sich von außen per ssh einloggen kann, ist alles gut, weitere Schritte sind nicht nötig.

Windows Server

auch der Windows-Server rwin muss nicht weiter konfiguriert werden. Remote-Desktop-Verbindungen müssen natürlich erlaubt sein und die Windows-Firewall für Port 3389 durchlässig.

Der Client (Linux)

Wir möchten mit einem Linux-Rechner von außen zugreifen.

Dazu muss zuerst der Tunnel vom lokalen Rechner zu unserem ssh Server erzeugt werden:

ssh myserver.dyndns.com -p <ssh-port> -L 3389:<interne IP von rwin>:3389 -l <username linux>

Dann kann man mittels Remote Desktop auf localhost zugreifen:

rdesktop localhost

Der Client (Windows)

Wir möchten mit einem Windows-Rechner von außen zugreifen. Unter Windows kann man einen Tunnel mit Putty einrichten:

Source port: Ist der Port der auf dem lokalen Rechner für den Tunnel benutzt werden soll. Man erreicht den Tunnel also immer mit localhost:<der hier eingegebene Port>
Destination: Beschreibt die Verbindung vom ssh-server ins interne Netzwerk in der Form: <interne IP des Rechners der die zu tunnelnden Services anbietet>:<Port des zu tunnelnden Services>

Oftmals ist unter Windows der Port 3389 belegt obwohl der Rechner nicht für Remote-Desktop konfiguriert ist. Dann muss man einen anderen Port verwenden (z.B. 15555). Dieser wird statt 3389 in "Source port" eingetragen.

Nachdem man auf Open geklickt hat, öffnet sich ein schwarzes Fenster und fordert zur Eingabe von Username und Passwort für den Linux-Rechner auf. Danach ist der Tunnel aktiv.

Nun kann über Remote-Desktop zugegriffen werden (Ausführen -> mstsc):

Bei Verwendung des Standard-Ports 3389:

Hinweis: Falls folgende Meldung erscheint...:

...keine Panik, einfach einen anderen Port als den Default-Port 3389 verwenden. Mit Port 15555 hat es bei mir immer funktioniert.
Zumindest unter Windows 7 scheint der Standard-Port blockiert zu sein, obwohl der Rechner nicht für Remote-Desktop-Zugriff konfiguriert ist.

Bei Verwendung von Port 15555:

Damit sollte sich der Windows-Server nun melden und zum Login auffordern.

Fertig!

Frische Änderungen | Menü editieren
zuletzt geändert am 01.12.2010 10:34 Uhr von Elsni
Edit Page | Page History