🏠 | 💻 PC | IT-Helpdesk |

Доступ по RDP через SSH туннель

Содержание
Введение
Схема подключения
Шаги
Настройка SSH сервера
Настройка SSH клиента
Проброс портов на роутере
Открытие сессии клиентом
Настройка RDP на сервере
Подключение по RDP с клиента
Проброс портов в Putty - Putty Туннель
Похожие статьи

Введение

Цель – безопасно подключиться к серверу за роутером из внешней сети.

Убедитесь, что вы понимаете как создать простейший SSH туннель, например, такой как здесь

конфигурация подключения по rdp через SSH изображение с сайта www.andreyolegovich.ru
Нормальные ноутбуки на сайте -

Создание туннеля это довольно трудоёмкая задача, состоящая условно из шести частей.

  1. Настройка SSH сервера
  2. Настройка SSH клиента
  3. Проброс портов на роутере
  4. Открытие сессии клиентом
  5. Настройка RDP на сервере
  6. Подключение по RDP с клиента

Вам понадобятся роутер, putty и freesshd.

Роутер должен поддерживать Port Forwarding приобрести онлайн можно в магазинах:

1. Настройка SSH сервера

1.01 Установить и запустить freeSSHd. Создайте ключ, чтобы сервер не ругался, потом поменяем его на новый ключ.

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.02) Здесь есть нюансы, в данный момент я предпочитаю выбирать "Нет"

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.03) Значок freeSSHd появляется в трее, выберите Settings

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.04) Само собой, нужно выдать разрешение бранмауэру.

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.05) В разделе Authentication, разрешить только доступ по ключам

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.06) Зайти в меню Users

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.07) Добавить нового пользователя

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.08) Вид после добавления

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.09) Запустить на сервере PuTTYgen

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.10) Сгенерировать пару ключей

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.11) Публичный ключ, который останется лежать на сервере, нужно скопировать из верхнего окна

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.12) Вставить публичный ключ в текстовый редактор, проверить чтобы он был в одну строку и начинался со слова ssh-rsa

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.13) Сохранить ключ как текстовый файл, имя должно быть такое же как и пользователя, который был ранее создан (в нашем случае – sini)

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.14) Удалить расширение

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.15) Согласиться

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.16) Показать freeSSHd путь до ключа

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

1.17) Сохранить приватный ключ, который затем нужно будет перенести на клиентский компьютер В результате предыдущих манипуляций мы имеем запущенный SSH сервер и пару ключей.

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2. Настройка SSH на компьютере клиенте

2.18) На клиентском компьютере нужно положить приватный ключ в заранее созданную для него папку

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2.19) На клиенте запускаем PuTTY и создаем подключение с именем sini. В поле Host Name (or IP address) указываем нужный внешний ip сервера, т.к. он за роутером, это будет ip роутера. Меняем порт на 443 или какой-нибудь другой, только осмысленно.

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2.20) В поле Auth указываем путь до приватного ключа

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2.21) Выбираем ключ

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2.22) Создаём туннель

Порт 3389 это стандартный порт для RDP. Порт 3391 мы будем использовать на клиенте как «вход» в туннель.

Изображение ниже показывает, что мы поставили в соответствие локальному порту 3391 порт 3389 на IP 192.168.0.101

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

2.23) Сохраняем сессию. В поле Нost Name пишем IP сервера.

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

На этом этапе у нас подготовлено SSH соединение, которое сервер слушает на 443 порту.

На всякий случай уточняю, что в этом примере IP сервера в локальной сети 192.168.0.101

Внешний IP сервера это IP роутера. На картинке он замазан, в Вашем случае это будет Ваш внешний IP, т.е. что-то похожее на 78.47.141.187

конфигурация подключения по rdp через SSH изображение с сайта www.andreyolegovich.ru
Если Вам нужен нормальный ноутбук, а не как у меня на картинке - заходите на сайт

Проброс портов на роутере

3.20) Задаём на роутере привязку MAC адреса сервера к какому-нибудь ip адресу

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

3.21) Объясняем роутеру, что когда идёт запрос по 443 порту нужно передать его именно серверу (делаем Port Forwarding – Проброс портов)

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

Putty на клиенте

4.22) Открываем сессию

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

Настройка RDP - На сервере

5.23) Создаем пользователя sini

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

5.24) Обязательно создаем пароль

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

5.25) Разрешаем доступ по RDP

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

5.27) Добавляем Синего в список пользователей, которым разрешён доступ по RDP

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru
Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

Настройка RDP - На клиенте

6.28) Запускаем на клиенте mstsc (сперва нужно открыть SSH туннель, если он был открыт нужно проверить не закончилась ли сессия.

Чтобы не помешать никому работать - можно проверить подключён ли кто-то к компьютеру или нет. Сделать это можно с помощью PSTools инструкция находится здесь

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

6.29) Подключаемся к localhost:3391

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

Вводим пароль

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

6.30) Соглашаемся

Подключение к удалённому рабочему столу RDP через туннель SSH изображение с сайта www.andreyolegovich.ru

Заметка для OpenBSD

Имеем компьютер в СПб (ПК_СПб), сервер на OpenBSD в МСК (СРВ_МСК) и локальный компьютер, подключенный к серверу в МСК (ПК_МСК). Цель - подлючиться с ПК_СПб к ПК_МСК через ssh туннель по rdp с помощью putty из-под Windows.

Делать нужно так же как описано по ссылке, но на первой картинке отметить

Local ports accept connections from other hosts

Source port можно выбрать любым из свободных, напрмер 6789. В поле Destination указать

Локальный_ip_ПК_МСК:3389

При подключении по RDP (последняя картинка) можно указать

127.0.0.2:6789

Похожие статьи:

Похожие статьи
IT
SSH
PuTTY
Telnet
PSTools
FreeSSHD
Компьютерные сети
Как создать туннель
Как сделать проброс портов
Python
Python
Интерактивный режим
str: строки
\: перенос строки
Списки
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Дата и время в Python
json.dumps
Selenium + Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
Виртуальное окружение
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: