Похожие вопросы

Vagrant: невозможно запустить vagrant; время ожидания соединения. Повторение
Резервное копирование на Time Capsule удаленно через SSH + iMac
SSH-соединение зависает после нескольких минут неиспользования?
Что такое команда терминала для получения файлов с удаленного сервера с помощью ssh в Mac OS X?
Подключение сервера в Finder на Apple OS X. 11 по SSH
sudo gedit Gtk-предупреждение **: не удается открыть дисплей:
Смарт-карты для хранения ключей gpg / ssh (Linux) - что мне нужно?
Использование tmux-прокрутка по ssh
Что быстрее для синхронизации удаленного на локальную файловую систему, SSH или FTP?
Терминал зависает после ввода пароля SSH для входа на сервер. Меня только что взломали?
Как обрабатывать SSH ссылки с Chromium?
Как скопировать файлы между двумя открытыми SSH оболочками?
Сервер Centos 6 не открывает порты
Как заставить Vagrant сбросить ключи SSH?
Виртуальный Box ssh не работает на виртуальной машине Ubuntu Box

Реле вместе два SSH-подключения

у меня три машины:

  1. у меня есть физический доступ к localhost
  2. я хочу ssh в host1. Однако он находится за NAT операторского класса, поэтому я не могу ssh непосредственно к нему от localhost
  3. relayhost настройки, чтобы помочь мне подключиться от localhost to host1

я хочу ssh от каждого localhost и host1 до relayhost, то есть relayhost реле подключение по SSH с localhost host1.

ответ предполагает, что я могу создать туннель на relayhost используя ssh -L если я знаю URI или IP-адрес host1. Однако я не знаю этого из-за класса носителя NAT. Поэтому я могу представить себе процесс, чтобы передать его следующим образом:

  1. On host1,ssh user@relayhost
  2. relayhost наблюдает за этим соединением и когда он видит, что он говорит:"Я собираюсь создать туннель от моего порта 9999 к этому соединению"
  3. на localhost,ssh 9999:relayhost

это правильный путь, чтобы идти об этом? Как сделать шаг 2?

5
задан ericksonla
источник

1 ответов

вам не нужны специальные триггеры на relayhost. Все, что вам нужно сделать, это использовать удаленную переадресацию портов с ssh -R вместо локальной переадресации портов с ssh -L.

теперь, если я правильно понимаю - ваша проблема в том, что ни localhost nor host1 имеют общедоступный IP-оба находятся за NAT. Иначе проще было бы создать туннель из host1 to localhost С ssh -R и затем запустите второе SSH-соединение в этом туннеле.

если мы имеем использовать реле, то можно сделать следующие шаги. Для наглядности переименуем ваш localhost машины myhost сейчас.

  1. об этом host1:

    ssh -R 12345:localhost:22 user@relayhost
    

    это откроет порт 12345 on relayhost и когда кто-нибудь подключается к нему, данные будут перенаправлены на SSH порт 22 on host1.

  2. теперь вы можете подключиться к port 12345 on relayhost С myhost.

    ssh user@relayhost -p 12345
    

    в случае, если у вас есть ограничение брандмауэра на relayhost запрещающий внешний доступ к порту 12345, вы можете использовать локальную переадресацию портов, чтобы открыть порт локально на myhost:

    ssh -N -L 56789:localhost:12345 user@relayhost
    

    , а затем подключиться к host1 С myhost:

    ssh user@localhost -p 56789
    

однако не стоит ожидать создания постоянного сетевого решения по удаленной переадресации портов (см.:https://serverfault.com/q/595323 для будущих возможных проблем). Вы должны рассмотреть возможность использования VPN с сервером на relayhost для долгосрочной установки вместо.

2
отвечен Marek Rost 2017-11-29 18:09:11
источник

Другие вопросы ssh ssh-tunnel