jak tunelować Pulpit zdalny systemu Windows za pośrednictwem ssh za pomocą Linux-a?

17

Mam dwa fizyczne serwery w mojej sieci domowej, Linux ( 192.168.8.x) i Windows Server 2008 ( 192.168.8.y).

Serwer Linux jest dostępny z zewnątrz przez ssh na niestandardowym porcie (powiedzmy 23008). Jak ustanowić stały tunel RDP przez ssh na Linuksie? Wiem, że mogę używać szpachli na maszynie zewnętrznej, ale nie wiem, jak poprawnie ustawić sshd na Linux-ie. Dzięki za wszelkie wskazówki!

elsni
źródło

Odpowiedzi:

18

Zakładając, że twój Linux jest dostępny z Internetu pod 1.2.3.4 na porcie 23008, w systemie zewnętrznym zrobiłbym:

external% ssh -p 23008 -L 13389:192.168.8.y:3389 [email protected]

Następnie podłączę się do przekierowanego do portu systemu RDP za pomocą

external% rdesktop localhost:13389

Jeśli twoje zewnętrzne pudełko nie jest pudełkiem linuksowym, będą dostępne równoważne polecenia dla posiadanych narzędzi; pomysł pozostaje ten sam: przekierować port zewnętrzny 13389 na 192.168.8.y port 3389, a następnie użyć zewnętrznego klienta RDP, aby się połączyć localhost:13389.

Odwołujesz się do prawidłowego konfigurowania sshd Linuksa, ale chyba, że ​​go skonfigurowałeś, standardowa konfiguracja sshd prawdopodobnie będzie w stanie dobrze to obsługiwać.

Szalony Kapelusznik
źródło
Masz rację, pomyślałem, że muszę skonfigurować sshd do tunelowania określonych portów. Ale wszystko to odbywa się za pomocą polecenia klienta. (ssh lub kit na windows). I
elsni
14
ssh -L 3389:<ip of windows server>:3389 <ip of ssh server> -l <ssh user> -N

Zakładając, że 3389 jest portem, na którym działa RDP ORAZ serwer ssh ma dostęp do tego portu, możesz połączyć się z 127.0.0.1:3389 tak, jakby to był serwer zdalny.

Oneiroi
źródło
czy adres IP serwera ssh jest wewnętrzny czy zewnętrzny? Zewnętrzne zmiany zmieniają się codziennie, ale serwer jest dostępny poprzez dyndns z zewnątrz
elsni
W takim przypadku: ssh -L 3389:<ip of windows server>:3389 <dydns of ssh server> -l <ssh user> -Nnazwy hostów mogą być używane zamiast adresu IP, zakładając, że masz port 22 przekierowujący na serwer ssh, co z boku może być złe, jeśli używasz innego portu i przekierowujesz to na 1212 użyj -p 1212 flaga.
Oneiroi
<prdp> to port rdp na wewnętrznym serwerze Windows <pssh> to port publicznego serwera ssh linux (niestandardowy w moim przypadku) <ptunnel> to port dla tunelu <ipserver> to wewnętrzny adres IP serwera Windows. Zrobiłem ssh -L <prdp>: <server>: <ptunnel> mójserver.gotdns.com -l moja nazwa użytkownika -N -p <pssh> poprawnie?
elsni
3

Można użyć wewnętrznego tunelowania ssh z Remminy zdalnego pulpitu .

Jeśli możesz ssh do jakiegoś serwera Linux przy użyciu kluczy ssh, a ten serwer ma otwarty port 3389 (RDP) dla pakietów pochodzących z twojego komputera, możesz użyć następującej konfiguracji RDP przez tunel ssh.

W edytorze profili ustaw zakładkę Podstawową jak dla bezpośredniego połączenia. Przejdź do zakładki Tunel SSH i skonfiguruj tunelowanie w następujący sposób:


[x] Włącz tunel SSH

(o) Niestandardowy [ip / nazwa hosta serwera ssh / linux]

Uwierzytelnianie SSH:

Nazwa użytkownika: [nazwa użytkownika na serwerze ssh / linux]

(o) Klucz publiczny (automatyczny)


Korzystanie z tych opcji otwiera Remmina

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

a następnie łączy sesję RDP za pośrednictwem tego kanału ssh.

Jeśli logujesz się do serwera Linux przy użyciu nazwy użytkownika / hasła lub jeśli używasz innego pliku tożsamości, musisz zmienić sekcję Uwierzytelnianie SSH w ustawieniach profilu.

andrej
źródło