как туннелировать удаленный рабочий стол Windows через ssh с помощью linux box?

17

У меня есть два физических сервера в моей домашней сети, linux ( 192.168.8.x) и windows server 2008 ( 192.168.8.y).

Сервер linux не доступен извне по ssh через нестандартный порт (скажем, 23008). Как мне установить постоянный туннель RDP через ssh на коробке linux? Я знаю, что могу использовать putty на внешней машине, но я не знаю, как правильно настроить sshd на linux box. Спасибо за любые подсказки!

elsni
источник

Ответы:

18

Предполагая, что ваш linux-бокс доступен из Интернета по адресу 1.2.3.4 через порт 23008, во внешней системе я бы сделал:

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

Затем я бы подключился к RDP-системе с переадресацией портов

external% rdesktop localhost:13389

Если ваш внешний блок не является блоком linux, для ваших инструментов будут эквивалентные команды; Идея все та же: перенаправить внешний порт 13389 на порт 1989.168.8.y.yy, а затем использовать внешний RDP-клиент для подключения localhost:13389.

Вы имеете в виду правильную настройку sshd в Linux, но если вы его не перенастроили, стандартная настройка sshd, скорее всего, прекрасно это поддержит.

Безумный Шляпник
источник
Вы правы, я подумал, что мне нужно настроить sshd для туннелирования определенных портов. Но все это делается с помощью команды клиента. (ssh или замазка на окнах). Я
elsni
14
ssh -L 3389:<ip of windows server>:3389 <ip of ssh server> -l <ssh user> -N

Предполагая, что 3389 - это порт, на котором работает RDP, а сервер ssh имеет доступ к указанному порту, вы можете подключиться к 127.0.0.1:3389, как если бы это был удаленный сервер.

Oneiroi
источник
ip сервера ssh внутренний или внешний? Внешние меняются ежедневно, но сервер доступен с внешней стороны
elsni
В этом случае: ssh -L 3389:<ip of windows server>:3389 <dydns of ssh server> -l <ssh user> -Nимена хостов могут использоваться вместо ip, при условии, конечно, что у вас есть переадресация порта 22 на сервер ssh, что на стороне замечание может быть плохим, если используется другой порт и переадресация, то есть на 1212, используйте -p 1212 флаг.
Онейрой
<prdp> - это порт rdp на внутреннем сервере Windows. <pssh> - это порт общедоступного сервера SSH Linux (нестандартный в моем случае). <ptunnel> - это порт для туннеля. <ipwserver> является внутренним IP-адресом сервера Windows. Я сделал ssh -L <prdp>: <ipwserver>: <ptunnel> myserver.gotdns.com -l myusername -N -p <pssh> правильно?
Элсни
3

Можно также использовать внутреннее туннелирование ssh из клиента удаленного рабочего стола Remmina .

Если вы можете подключиться к SSH-серверу Linux с помощью ключей SSH и на этом сервере открыт порт 3389 (RDP) для пакетов, приходящих с вашего компьютера, вы можете использовать следующую настройку для RDP через туннель SSH.

В редакторе профиля настройте вкладку Basic как для прямого подключения. Перейдите на вкладку SSH Tunnel и настройте туннелирование следующим образом:


[x] Включить туннель SSH

(o) Пользовательский [ip / hostname сервера ssh / linux]

SSH аутентификация:

Имя пользователя: [имя пользователя на сервере ssh / linux]

(o) Открытый ключ (автоматический)


Используя эти опции, открывается Remmina

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

и затем соединяет сеанс RDP через этот канал ssh.

Если вы входите на сервер linux, используя имя пользователя / пароль, или если вы используете другой файл идентификации, вы должны изменить раздел SSH Authentication настройки профиля.

андрей
источник