Вопрос или проблема
У меня есть коробка, в которой находится виртуальная машина.
В коробке установлено AllowTcpForwarding no
, и мы не можем это изменить.
Я могу подключиться к виртуальной машине напрямую с помощью:
ssh -p 12022 vm_user@box
Коробка открывает обратное SSH соединение к глобальному узлу перехода следующим образом:
ssh -R 127.2.1.1:1073:localhost:22 support@global_jump
Мы можем подключиться к коробке из упомянутого глобального узла перехода следующим образом:
ssh -p 1073 [email protected]
Как мне подключиться к виртуальной машине напрямую из глобального узла перехода?
Ответ или решение
Для того чтобы осуществить SSH-подключение к виртуальной машине (VM) через глобальный промежуточный хост, важно правильно настроить обратный порт Forwarding, особенно если настройки сервера (например, AllowTcpForwarding no
) не позволяют стандартные методы перенаправления. Давайте рассмотрим, как это можно сделать в вашем случае.
Понимание задачи
У вас есть сервер (назовем его "box"), который хостит виртуальную машину (VM). Вы можете подключаться к VM напрямую, но вам нужно подключатся к ней через глобальный промежуточный хост, осуществляя запросы к постоянному порту.
Шаги для выполнения задачи
-
Подключение к VM через box:
Вы можете подключиться к VM на порту 12022, используя команду:ssh -p 12022 vm_user@box
-
Настройка обратного SSH на global_jump:
Вы уже настроили обратное подключение на глобальный хост с помощью следующей команды:ssh -R 127.2.1.1:1073:localhost:22 support@global_jump
Этот способ позволяет вам подключаться к box с глобального хоста через порт 1073.
-
Настройка SSH-подключения к VM через global_jump:
Чтобы подключиться к VM, вам нужно использовать SSH-соединение, ангулируя черезbox
, посколькуAllowTcpForwarding
выключен. Вам нужно будет сделать следующее:- Создайте SSH-туннель, который перенаправит порт, через global_jump на box:
ssh -p 1073 support@global_jump -L 2222:localhost:12022
Здесь мы перенаправляем локальный порт 2222 на порт 12022 на
box
, что даст вам возможность подключаться к VM через глобальный хост. - Создайте SSH-туннель, который перенаправит порт, через global_jump на box:
-
Подключение к VM через перенаправленный порт:
После успешного создания туннеля, вы сможете подключиться к VM, используя следующую команду:ssh -p 2222 vm_user@localhost
Данная команда будет использовать локальный перенаправленный порт 2222, выдавая доступ к виртуальной машине на
box
.
Заключение
Таким образом, используя SSH-туннели, вы сможете обойти ограничения, установленные на box
, при этом всё ещё оставаясь в рамках безопасной практики. Это решение позволяет вам подключаться к вашему VM через глобальный промежуточный хост, обеспечивая именно то соединение, которое вам необходимо. Не забывайте проверять настройки брандмауэра, чтобы убедиться, что выбранные порты открыты для связи.
Если у вас есть дополнительные вопросы или вам нужна дальнейшая помощь, не стесняйтесь обращаться!