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!

elsni
quelle

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 [email protected]

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.

MadHatter unterstützt Monica
quelle
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.

Oneiroi
quelle
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.

andrej
quelle