Wie kann ich Windows Remote Desktop mit einer Linux-Box durch ssh tunneln?


17

Ich habe zwei physische Server in meinem Heimnetzwerk, linux ( 192.168.8.x) und windows server 2008 ( 192.168.8.y).

Der Linux-Server ist von außen über einen nicht standardmäßigen Port (zB 23008) per ssh erreichbar. Wie richte ich einen permanenten RDP-Tunnel durch ssh auf der Linux-Box ein? Ich weiß, dass ich Putty auf der externen Maschine verwenden kann, aber ich weiß nicht, wie ich sshd auf der Linux-Box richtig einrichten kann. Vielen Dank für alle Hinweise!

Antworten:


18

Angenommen, Ihre Linux-Box ist über das Internet unter 1.2.3.4 auf Port 23008 erreichbar. Auf einem externen System würde ich Folgendes tun:

external% ssh -p 23008 -L 13389:192.168.8.y:3389 username@1.2.3.4

Ich würde mich dann mit dem portweitergeleiteten RDP-System verbinden

external% rdesktop localhost:13389

Wenn Ihre externe Box keine Linux-Box ist, gibt es entsprechende Befehle für die Tools, die Sie haben. Die Idee ist immer noch dieselbe: Um den Port 13389 von external an den Port 3389 von 192.168.8.y weiterzuleiten, stellen Sie mit dem RDP-Client von external eine Verbindung her localhost:13389.

Sie beziehen sich auf das korrekte Einrichten des sshd der Linux-Box, aber wenn Sie es nicht neu konfiguriert haben, wird das standardmäßige sshd-Setup dies wahrscheinlich in Ordnung unterstützen.


Sie haben Recht, ich dachte, ich muss sshd konfigurieren, um bestimmte Ports zu tunneln. Dies geschieht jedoch alles mit dem Client-Befehl. (ssh oder Kitt auf Windows). I
elsni

13
ssh -L 3389:<ip of windows server>:3389 <ip of ssh server> -l <ssh user> -N

Angenommen, 3389 ist der Port, auf dem Ihr RDP ausgeführt wird, UND der SSH-Server hat Zugriff auf diesen Port. Sie können dann eine Verbindung zu 127.0.0.1:3389 herstellen, als wäre es der Remote-Server.


Ist die IP des SSH-Servers die interne oder die externe? Die externen Änderungen täglich, aber der Server ist von außen über
dyndns

In diesem Fall: ssh -L 3389:<ip of windows server>:3389 <dydns of ssh server> -l <ssh user> -NHostnamen können anstelle von IPs verwendet werden, vorausgesetzt, Sie haben Port 22 für die Weiterleitung auf den SSH-Server, was, wenn Sie einen anderen Port verwenden und die Weiterleitung auf zB 1212 verwenden, schlecht sein kann Flagge.
Oneiroi

<prdp> ist der RDP-Port auf dem internen Windows-Server. <pssh> ist der Port des öffentlichen SSH-Linux-Servers. (Nicht-Standard in meinem Fall.) <ptunnel> ist der Port für den Tunnel. <ipwserver> ist die interne IP-Adresse des Windows-Servers. Ich habe ein ssh -L <prdp>: <ipwserver>: <ptunnel> myserver.gotdns.com -l myusername -N -p <pssh> richtig gemacht?
Elsni

3

Man kann auch internes SSH- Tunneling vom Remmina- Remotedesktop-Client aus verwenden.

Wenn Sie mit SSH-Schlüsseln zu einem Linux-Server ssh können und dieser Server über einen offenen 3389-Port (RDP) für Pakete verfügt, die von Ihrem Computer kommen, können Sie die folgenden Einstellungen für RDP über SSH-Tunnel verwenden.

Im Profileditor die Registerkarte Grundeinstellungen wie bei der Direktverbindung einrichten. Gehen Sie zur Registerkarte SSH Tunnel und richten Sie das Tunelling folgendermaßen ein:


[x] SSH-Tunnel aktivieren

(o) Benutzerdefiniert [IP / Hostname des SSH / Linux-Servers]

SSH-Authentifizierung:

Benutzername: [Benutzername auf dem ssh / linux Server]

(o) Öffentlicher Schlüssel (automatisch)


Mit diesen Optionen wird Remmina geöffnet

ssh -L 3389:[target windows server]:3389 [linux server] -N

und verbindet dann die RDP-Sitzung über diesen SSH-Kanal.

Wenn Sie sich mit Benutzername / Passwort beim Linux-Server anmelden oder eine andere Identitätsdatei verwenden, müssen Sie den Abschnitt SSH-Authentifizierung der Profileinrichtung ändern.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.