Мне нужно пересылать входящие ssh-запросы, если возможно, вот так:
sshRequest поступает на общедоступный IP-адрес сервера на порт 21 (если возможно, он предоставляет дополнительный идентификатор поля) sshRequest перенаправляется на localhost или внутренний IP-адрес на другой порт (такой же, как идентификатор).
Идея состоит в том, чтобы инициировать обратное туннелирование от клиента, и я мог бы ssh в localhost, используя разные идентификаторы, и получать доступ к разным терминалам в зависимости от используемого идентификатора / порта.
Может ли кто-нибудь правильно объяснить мне, как добиться такого поведения, если моя идея не является хорошим путем для ее достижения, или если да, то как ее можно реализовать?
Другими словами, вы хотите, чтобы полевые машины подключались к центральному серверу, который вы можете использовать для входа на любой из них?
Однажды я сделал нечто подобное. Вы можете просто написать сценарий bash, который запускается на клиентах, которые ssh -R
, с или без autossh
. Затем вы можете совершить магию на сервере, чтобы сопоставить IP-адрес клиента, порт которого он прослушивает. Это требует довольно большого количества сценариев, объединяющих вывод ps
и netstat
(и разные варианты обоих).
Вы также можете попросить клиента разместить порт где-нибудь на простой странице PHP после установления туннеля, потому что, в отличие от сервера, клиент делает знать порт прослушивания.