Я провел несколько сеансов, пытаясь выяснить это, и пытался следить за многими другими постами. Но по какой-то причине это сбивает меня с толку, и ни одна из других ситуаций, кажется, не применима.

Что я хочу сделать:

ПРИМЕЧАНИЕ. Ни одна из этих машин не находится в одной локальной сети.

Рабочая станция A - Линукс машина где-то / где-нибудь в Интернете

Сервер - виртуальный частный сервер Linux вне сети Интернет IP-адрес 1.2.3.4

Рабочая станция B - Мой домашний компьютер с Windows, на котором работает IP-адрес RDP в Интернете 5.6.7.8 IP-адрес NAT 192.168.10.51

Я хочу, чтобы сервер Linux действовал как "шлюз" SSH, чтобы я мог выполнять RDP с рабочей станции A на рабочую станцию B

Рабочая станция B находится на ограниченном интернет-провайдере, она не может запустить sshd, но может подключиться к серверу с помощью SSH-клиента, такого как Putty.

Вот мои последние усилия:

Итак, с рабочей станции B:

Using Putty:  Host Name ( Ip Address ) 1.2.3.4
              Port                     22

              SSH Tunnel Source Port   3389
                         Local Port    localhost:3389

(обновлено) Установлен флажок "Локальные порты принимают соединения от других хостов" Не проверен "Удаленные хосты делают то же самое" Выбранные "Локальные" и "Авто" под назначением

Затем на сервере:

ssh -p 33890 -L 9833:192.168.10.51:3389 rdpuser@5.6.7.8

Затем на рабочей станции A:

rdesktop 1.2.3.4:33890

Я попробовал несколько вариантов этого, но я даже не уверен, что правильно понимаю весь туннель ssh.

Кроме того, у меня есть особая потребность в SSH-туннеле, и я не могу установить sshd на Worstation B. Я действительно знаю, как настроить PPTPD, IPsec и другие, но это не сработает. Так что, если у вас есть другое решение, оно не применимо. Я только смотрю, чтобы понять, может ли мой сценарий быть реализован (потому что я сбит с толку) и что я могу делать неправильно.

Извините, если это долго, стараюсь не быть расплывчатым.

Я посмотрел на этот пост:[how-to-tunnel-windows-remote-desktop-through-ssh-using-a-linux-box] [1] Это было ОЧЕНЬ близко к моей ситуации, но окно linux не на моем локальном сеть.

1 ответ1

1

На A вы можете запустить, например,

ssh -L 33890:192.168.10.51:3389 1.2.3.4

Он подключается к 1.2.3.4 по ssh и открывает туннель от порта 33890 на A до 3389 на B. Так на А вы можете запустить

rdesktop localhost:33890

подключиться к RDP на B.

Соединение зашифровано между A и сервером, но не между сервером и B (в вашей локальной сети). Если вы также хотите зашифровать этот фрагмент, подключите B к серверу и перенаправьте порт с сервера на порт RDP на B. На Б, запустите:

ssh -R 33891:localhost:3389 1.2.3.4

а затем на A:

ssh -L 33890:localhost:33891 1.2.3.4

(Вы можете заменить 33891 на любой доступный порт на сервере.) Затем на A вы подключитесь к rdesktop localhost:33890 как и раньше.

Недостаток этого подхода заключается в том, что он полагается на постоянное соединение между B и сервером, но через некоторое время оно обычно истекает. Вы можете попытаться изменить это, установив ServerAliveInterval в соединении от B к серверу, или используя autossh для автоматического перезапуска туннеля, когда он выйдет из строя .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .