Я, например, так к роутеру на работе коннекчусь. "ssh ... -L 80:trendnet.localdomain.local:80".
это в консоли пишете?
P.S. Какое-то обилие информации и везде кусочками...мозг кипит. Надо просто из дома, скажем по KRDC лезть на рабочий стол компа рабочего, который находится за шлюзом, который в свою очередь идет через dyndns. Назовем это удаленной работой:)
Да, в консоли. Вместо троеточия поставить адрес компьютера и логин на том компьютере, если порт нестандартный 22, то и порт указать "-p номер-порта". Как команда выполнилась без сообщений об ошибках, то это означает, что туннель поднялся. Тогда уже можно отдельно запускать RDP-VNC клиента, указывать этому клиенту адрес для подключения trendnet.localdomain.local:80 , вроде такой адрес. Но у меня по ссылке 127.0.0.1 и под вечер не соображу, что там на какой стороне и в каком порядке разрешаются имена в IP адреса и т.п. Как у меня - так делаю, работает.
127.0.0.1 с обоих сторон одинаков.

Тут я заметил!

SSH-то на шлюзе, а Вин на клиенте позади шлюза. А тогда...
Отдельная тема - проброс порта (port forwarding через iptables, например) на самом шлюзе. Общая идея - шлюз принимает данные от сокета 127.0.0.1:5900, например. Или от сокета trendnet.localdomain.local:80. И заменяет адрес назначения 127.0.0.1 или trendnet.localdomain.local, локальным адресом управляемого компьютера. Делается это через port forwarding, через iptables. См. материалы конференции по port forwarding и прокидыванию порта.
Подробнее. При этом на шлюзе из сокета 127.0.0.1:5900, например, или из сокета trendnet.localdomain.local:80 данные появляются через SSH туннель. Ещё раньше - где-то снаружи "кто-то" уже подключился по SSH, создал этот туннель. Ещё раньше-дальше в этой "цепи" этот кто-то указывает адрес 127.0.0.1:5555 ( или trendnet.localdomain.local:80) для подключения своей программе RDP-клиент. Всё перечислено в обратном порядке, но блок схема такая.
1) В прямом порядке: RDP клиент идёт по адресу 127.0.0.1:5555, SSH туннель отправляет это в недра шлюза, шлюз читает из 127.0.0.1:5900 и копирует это по адресу windows.net.address:5900, на управляемом компьютере с адресом windows.net.address программа RDP сервер слушает порт 5900.
2) Если SSH выкинуть, то: RDP клиент идёт по адресу адрес.шлюза в порт 5900, шлюз читает из сокета адрес.шлюза:5900 и копирует-транслирует это по адресу local.windows.net.address:5900, на управляемом компьютере с адресом local.windows.net.address программа RDP сервер слушает порт 5900 и принимает оттуда команды управления.
3) Можно OpenSSH + CygWin внедрить на управляемом Вин компьютере, SSH настроить на другой порт, на 2222, например. Порт менять т.к. 22-й уже занят на шлюзе, именно так не будет помех от одного сервиса другому сервису на шлюзе, при прокидывании порта. И на шлюзе прокидывать не RDP или ещё что-то, а прокидывать на шлюзе порт 2222 на управляемый компьютер. Подключаться по SSH к управляемому компьютеру, делать туннель, запускать RDP через этот туннель.
Целых три варианта. 2- самый простой, 1- самый сложный, имхо. Третий вариант забавен, но реально работает, данные идут зашифрованные, OpenSSH для Windows через CygWin...
КUbuntuшные RDP клиент и сервер совместимы с Виндовыми. В разных сочетаниях, раньше работало. Сейчас тоже должно работать. Только научиться порт прокинуть...
P.S. Да, не howto. Пытался объяснить "как делать", вместо "что делать".