Настройка SSH-туннеля для Remote Desktop

Как настроить доступ к удаленному рабочему столу Windows через SSH. Приходится это делать нечасто, пишу, чтобы не забыть.

Смысл действия - обезопасить RDP. Светить открытым RDP на весь интернет совсем не хорошая идея. С другой стороны, хочется иметь доступ из любой географической точки. Решением будет промежуточный Linux-сервер. В настройках шлюза windows-сети разрешаем подключение с IP Linux-сервера. На локальной машине настраиваем тоннель до Linux-сервера. Теперь можно с локальной машины подключаться RDP-клиентом с любого IP адреса, а для шлюза это будет выглядеть как подключение с фиксированного IP.

Первым шагом нужно разрешить AllowTcpForwarding в /etc/ssh/sshd_config на Linux-машине.

Теперь создаем туннель на локальной машине с помощью Putty.

В разделе Sessions создать именованное подключение к Linux-серверу.

Перейти в раздел Connection – SSH – Tunnels. В поле Source port указать локальный адрес в виде 127.0.0.1:3391. По сути, все равно какой адрес и порт будут указаны. Putty будет слушать этот адрес и пересылать пакеты на адрес, который надо указать на следующем шаге.

В поле Destignation указать IP и порт шлюза windows-сети, который слушает подключения по RDP.

Нажать кнопку Add. Вернуться в раздел Sessions и сохранить изменения.

Для создания туннеля нажать кнопку Open. Откроется окно подключения к Linux-серверу. Авторизоваться на нем любым удобным способом. Теперь можно запускать RDP-клиент, указать в нем адрес 127.0.0.1:3391.