Мне нужно s sh на удаленный хост, запустить некоторый процесс, который динамически привязывается к порту в большом диапазоне и перенаправляет его через s sh.
Если бы я знал порт, я бы, очевидно, мог ssh myhost -L1234:127.0.0.1:1234
или даже добавить LocalForward 1234 127.0.0.1:1234
в мой .ssh/config
. Проблема в том, что я не знаю номер 1234, пока не подключусь и не запустил процесс.
Три обходных пути, которые я могу придумать, далеки от совершенства:
перенаправить все возможные порты (это безумие)
как только порт определен, откройте второе s sh соединение с тем же хостом с правильной переадресацией портов (я бы предпочел избежать этого для других причин)
после определения порта go в s sh внутреннюю командную строку через escape-последовательность ~C
и настройку -L 2233:127.0.0.1:2233
порта вперед. Это почти идеально. Я могу сделать это в интерактивном режиме, но не знаю , как это сделать с помощью скрипта? .
Другими словами, можно ли изменить список перенаправляемых портов из процесса, удаленно выполняемого через s sh без перекомпиляции s sh?
Спасибо!