1

Я не уверен, что мой вопрос имеет смысл, но я постараюсь описать, что я пытаюсь сделать.

У меня есть три машины A, B и C. A - это рабочая машина, которая не подвергается воздействию внешнего мира. B - это моя домашняя машина, которая имеет доступ по SSH, а A может подключиться к SSH по B. Я могу подключиться к A из B, если подключусь к VPN моей работы. C - это ноутбук, который я использую в сети моего университета. По сути у меня есть следующее:

+----VPN-----+
|            |
V            |
A----SSH---->B<--SSH--C

Мой университет блокирует все VPN-соединения, и поэтому я не могу работать с VPN. Мне было интересно, есть ли способ обойти этот блок, чтобы получить доступ к моей рабочей машине?

Есть ли способ "переслать" VPN-соединение или, возможно, настроить туннель через машину B, чтобы C мог добраться до A? Одна довольно запутанная идея состояла в том, чтобы установить для себя прокси-сервер на A, перенаправить порт прокси на B через соединение SSH, а затем настроить туннель от C до B через SSH, чтобы переадресовать локальный порт на порт прокси. B. Однако я не смог переадресовать удаленный порт, как только я настроил прокси (SSH просто зависал).

Есть ли способ выполнить то, что я пытаюсь сделать?

1 ответ1

0

Я думаю, что до тех пор, пока вы поддерживаете VPN-соединение между A & B, вы сможете соединяться с помощью прокси-магии ssh.

Похоже, это будет работать для вас:

foo@C:~ $ ssh -o ProxyCommand="ssh -W %h:%p <B>" <A>

Этого также можно достичь без VPN, поддерживая постоянное ssh-соединение от A до B с переадресацией на удаленный порт.

foo@A:~ $ ssh -R 2222:localhost:22 B # ensure that this connection is up forever

foo@C:~ $ ssh -o ProxyCommand="ssh -W localhost:2222 <B>" <A>

Больше хаков здесь:https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts

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