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

сетевая ошибка putty при запуске скриптов python на raspberry pi
Как изменить алгоритм шифрования файла закрытого ключа с помощью OpenSSH 5.3
Jupyter ноутбук зависает, когда он запущен в фоне. Почему?
длительная задержка при входе по ssh
Как заставить sshfs работать в Debian? (Я получаю/dev / fuse: отказано в разрешении)
Просмотр дерева файлов в Sublime при использовании Cyberduck
Как автоматически запустить mac с socks сервером по ssh?
Mac os x подключение к mysql через ssh в drupal
Как Скопировать текст удаленных машин в буфер обмена локальных машин через SSH?
Сбой SSH на macOS Mojave 10.14.1
Почему я не могу подключиться к своему ноутбуку по SSH?
Как синхронизировать локальный каталог с сервером с помощью Git?
Безопасное хранение закрытого ключа RSA Linux
Как можно поддерживать VPN-подключение после закрытия порта?
Есть ли инструмент для расшифровки всего трафика SSL / SSH, исходящего с этого компьютера?

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