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

ГЛАВНАЯ:

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

РАБОТА:

  • С помощью SSH доступны через Интернет в Интернете,
  • ГЛАВНАЯ может SSH РАБОТАТЬ, но не наоборот
  • Работать может как исходящий, так и входящий ssh
  • У меня нет доступа sudo на этом компьютере
  • на машине нет установленных iptables

СЕРВЕР:

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

Так что теперь сеть может сделать это:

ГЛАВНАЯ -> РАБОТА <- СЕРВЕР

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

1 ответ1

1

Вам не нужно sudo для этого решения ssh.

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

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

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

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

То есть из HOME вы должны иметь возможность подключиться через WORK, а затем через ssh-туннель к машине SERVER.

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

HOME$ ssh -p23456 serveruser@WORK

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .