Реле вместе два SSH-подключения
у меня три машины:
- у меня есть физический доступ к
localhost
- я хочу ssh в
host1
. Однако он находится за NAT операторского класса, поэтому я не могу ssh непосредственно к нему отlocalhost
relayhost
настройки, чтобы помочь мне подключиться отlocalhost
tohost1
я хочу ssh от каждого localhost
и host1
до relayhost
, то есть relayhost
реле подключение по SSH с localhost
host1
.
ответ предполагает, что я могу создать туннель на relayhost
используя ssh -L
если я знаю URI или IP-адрес host1
. Однако я не знаю этого из-за класса носителя NAT. Поэтому я могу представить себе процесс, чтобы передать его следующим образом:
- On
host1
,ssh user@relayhost
relayhost
наблюдает за этим соединением и когда он видит, что он говорит:"Я собираюсь создать туннель от моего порта 9999 к этому соединению"- на
localhost
,ssh 9999:relayhost
это правильный путь, чтобы идти об этом? Как сделать шаг 2?
1 ответов
вам не нужны специальные триггеры на relayhost
. Все, что вам нужно сделать, это использовать удаленную переадресацию портов с ssh -R
вместо локальной переадресации портов с ssh -L
.
теперь, если я правильно понимаю - ваша проблема в том, что ни localhost
nor host1
имеют общедоступный IP-оба находятся за NAT. Иначе проще было бы создать туннель из host1
to localhost
С ssh -R
и затем запустите второе SSH-соединение в этом туннеле.
если мы имеем использовать реле, то можно сделать следующие шаги. Для наглядности переименуем ваш localhost
машины myhost
сейчас.
об этом
host1
:ssh -R 12345:localhost:22 user@relayhost
это откроет порт
12345
onrelayhost
и когда кто-нибудь подключается к нему, данные будут перенаправлены на SSH порт22
onhost1
.теперь вы можете подключиться к port
12345
onrelayhost
С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
для долгосрочной установки вместо.
Другие вопросы ssh ssh-tunnel