Как проложить SSH-туннель через 2 хоста?

Как проложить SSH-туннель через 2 хоста?

Я работаю в сети, которая блокирует некоторые порты с высоким разрешением, что не позволяет мне подключаться по SSH к моей машине Windows в домашней сети с моего Mac. Обычно я использую следующую команду для установки туннеля, по которому я подключаюсь к клиенту удаленного рабочего стола в OS X.

ssh -p 22601 -L3389:Windows:3389 user@Ubuntu1 -N

В данном случае у меня есть 2 машины:

  • Сервер A: Ubuntu1 (порт 22601)
  • Сервер B: Windows (порт 3389)

Чтобы обойти блокировку порта 22601 в моей текущей сети, я могу проложить туннель через другую машину. Назовем ее Ubuntu2, и у нее есть SSH-сервер, работающий на порту 22. Я попробовал несколько комбинаций, но, похоже, не могу заставить это соединение работать. У меня одинаковый доступ к открытому ключу SSH для Ubuntu 1 и 2. Во всех случаях я использую одно и то же имя пользователя.

Какую командную строку мне следует выполнить, чтобы сделать это, и нужно ли мне что-то еще делать в конфигурации SSHd в Ubuntu2?

решение1

Взгляните на следующее:

http://blog.allanglesit.com/2011/11/ssh-hop-through-multiple-hosts/

Объединение их вместе с соответствующими номерами портов должно решить проблему.

В качестве альтернативы вы можете использовать ProxyCommand, чтобы сделать его более прозрачным:

http://backdrift.org/transparent-proxy-with-ssh

Связанный контент