Как создать SSH-туннель с помощью PuTTY в Windows?

Мне нужно создать SSH туннель с PuTTY в Windows, который будет делать то же самое, что и эта команда в Linux:

ssh -fN -L 2000:SomeIp:2000 myusername@myLinuxBox

Я попробовал много вариантов в PuTTY, включая установку исходного порта в графическом интерфейсе "2000" и назначения "SomeIp:2000". Назначение установлено на локальный (как -L Переключатель подсказывает).

Я успешно вошел в свой ящик SSH, но переадресация порта не производится.

Возможно ли это даже в Windows, чтобы все соединения, выполняемые программами, использующими этот порт (2000), проходили через этот туннель?

4 ответа

Решение

Вы, вероятно, хотите использовать plink.exe вместо клиента GUI. Синтаксис командной строки совместим с iirc.

С набором PuTTY вы можете настроить туннель либо с помощью самого PuTTY (GUI), либо с помощью инструмента командной строки plink.exe,


С plink.exe, вы используете те же аргументы, что и с OpenSSH ssh кроме -f, который не имеет аналога в Windows.

plink.exe -N -L 2000:SomeIp:2000 myusername@myLinuxBox

Справка: Использование инструмента подключения командной строки Plink


Со шпаклевкой -L 2000:SomeIp:2000 переводится как:

Настройки туннеля PuTTY

Так что, на самом деле, вы утверждаете, что пытались. Если у вас есть какие-либо проблемы, используйте журнал событий PuTTY для расследования:

Журнал событий PuTTY

-N переводится как "Не запускать оболочку или команду вообще".

Параметр PuTTY Не запускать оболочку или команду вообще

Но, вероятно, с GUI-клиентом не имеет смысла его включать, так как вы все равно получаете окно, вы просто ничего не можете с ним сделать. Смотрите также PuTTY Wish No-Terminal-Window.

Или вы можете пройти через графический интерфейс, который также позволяет это. Увидеть Connection > SSH > Tunnels на левой стороне с деревом опций.

В ответах выше упоминаются два разных способа решения проблемы:

  • используя Plink
  • используя шпатлевку GUI

У меня нет plink, и я не могу загрузить файл plink.exe (это тщательно контролируемая ограниченная среда), поэтому я использовал другой способ создания сценария решения с помощью однострочного сценария:

start putty -ssh myusername@myLinuxBox -pw my_pw -L 2000:localhost:2000

Сохраните это в пакетном файле (расширение файла ".bat", например, "tunnel.bat"). Таким образом, каждый раз, когда вы дважды щелкаете по этому файлу, команда запускается, и putty создает туннель ssh. Если вы хотите больше туннелей, просто повторите эту часть

-L 2000: локальный:2000

изменив порты соответствующим образом.

"Исходный" порт - это номер порта на том же компьютере, с которого вы используете putty (например, откройте его в вашем браузере: 127.0.0.1:source). "Назначение" - это удаленный порт, к которому вы хотите подключиться с локального компьютера. Это начало работать после того, как я понял это.

Другие вопросы по тегам