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

Реле вместе два 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