Создание соединения между 3 компьютерами

Создание соединения между 3 компьютерами

У меня 3 машины в 3 разных сетях.

ДОМ:

  • С интернетом, но без подключения к локальной машине, с sudo.

РАБОТА:

  • С ssh, доступным через www интернет,
  • ДОМможет ssh кРАБОТА, но не наоборот
  • РАБОТАможет делать как исходящий, так и входящий ssh
  • У меня естьнетдоступ sudo на этом компьютере
  • машина не имеет iptablesустановленного

СЕРВЕР:

  • СЕРВЕРподключен к www интернету
  • СЕРВЕРможет ssh кРАБОТА, но не наоборот
  • СЕРВЕРможет делать только исходящие ssh.
  • У меня есть доступ к sudo на этом компьютере.

Итак, теперь сеть может сделать следующее:

ДОМОЙ -> РАБОТА <- СЕРВЕР

Учитывая эту конфигурацию, как мне получитьДОМдля подключения кСЕРВЕР? Все три машины работают под управлением Ubuntu. У меня есть только доступ к командной строке ко всем трем машинам.

решение1

Для этого решения ssh вам не понадобится sudo.

Сначала в командной строке на СЕРВЕРЕ настройте удаленную переадресацию портов с РАБОЧЕЙ машины на СЕРВЕР:

SERVER$ ssh -f -N -R 23456:SERVER:22 workuser@WORK

Затем, пока этот процесс запущен, вы сможете сделать следующее:

HOME$ ssh -t workuser@WORK ssh -p23456 serveruser@localhost

То есть из ДОМА вы должны иметь возможность подключиться через РАБОТУ, а затем через туннель ssh к машине СЕРВЕРА.

Должно быть возможно использовать :23456, чтобы указать, что ssh должен прослушивать все интерфейсы на машине WORK, но у меня это не сработало, предположительно, потому что GatewayPorts был отключен. Если бы это сработало, вторую команду можно было бы упростить до этого:

HOME$ ssh -p23456 serveruser@WORK

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