Уходим от VPN к SSH-туннелям. RDP через SSH на Mikrotik
Появилась задача сделать удаленный доступ клиентам к их RDP серверу и упростить доступ до одного клика.
Скрипты с VPNами не подошли по причине зоопарка домашних компьютеров клиента от Windows XP до Windows 10.
ОК, делаем на SSH-туннелях и защищаем их RSA-ключом.
Первое, что надо сделать админу, это скачать и установить Putty (если вдруг еще не установлен).
Приступаем к выпуску ключей через PuTTYgen

После чего создаем текстовый файл user1.rsa и копируем туда ключ из поля Public Key, а из PuTTYgen сохраняем себе приватный ключ user1

Теперь идем в Winbox Mikrotik
Включаем ssh

Создаем группу ssh-rdp в System-Users и пользователя user1 (именуйте по вашему усмотрению)


К сожалению, не нашел как отключить доступ в ssh по паролю, поэтому задаем безумный пароль, например salskd90-0asdjfs09w3021=suUUQWE)90qqds
Теперь копируем в Mikrotik наш публичный ключ user1.rsa и подключаем его пользователю.

В заключение, в терминале пишем пару команд:
/ip ssh set forwarding-enabled=local
/ip ssh set always-allow-password-login=yes
На этом настройка Mikrotik закончена. Я бы рекомендовал еще защитить ssh от подбора пароля, статей в интернете на эту тему полно.
Пишем батник для нашего юзера
Нам понадобится еще файлик plink, можно скачать с сайте Putty или взять в его папке C:\Program Files\PuTTY\ plink.exe
Создаем папку, куда копируем его в plink.exe, созданный нами ранее приватный ключ user1.ppk
Там же создаем cmd файл следующего содержания (предполагается, что RDP-сервер находится в локальной сети по адресу 192.168.0.100 на стандартном порту 3389
plink -ssh -batch -C -L 3390:192.168.0.100:3389 user1@example.com -i "user1.ppk" | mstsc /v:127.0.0.1:3390
exit
Первая команда plink -ssh -batch -C -L 3390:192.168.0.100:3389 user1@example.com -i "user1.ppk"
запускает plink, который подключится к микротику, создаст ssh-туннель и пробросит порт 3390 локальной машины на порт 3389 RDP сервера за туннелем, а так же будет ждать завершения второй команды.
Вторая команда mstsc /v:127.0.0.1:3390
собственно, подключается к удаленному рабочему столу, а по завершению передаст управление обратно скрипту
В конце работы скрипта делаем exit
В результате, имеем в папке 3 файлика которые достаточно заархивировать и передать пользователю клиента.
plink.exe - утилита из Putty
user1.ppk - приватный ключ пользователя
User1-RDP.cmd - скрипт(батник) подключения.

По желанию, можно создать ключи для каждого пользователя.