SSH с динамически выделяемым удаленным перенаправленным портом — как узнать номер порта

SSH с динамически выделяемым удаленным перенаправленным портом — как узнать номер порта

Мне нужно установить произвольный удаленно-переадресованный порт на определенный локальный порт при подключении к серверу. У меня нет прав администратора на сервере, который является значительным вычислительным ресурсом, используемым большим количеством людей. Я не могу выбрать статический номер удаленного порта, поскольку у меня нет оснований ожидать, что он всегда будет доступен.

Я использую команду типа ssh -R 0:localhost:8001 servername-- используя 0 для номера порта, чтобы удаленный сервер мог выбрать порт для меня. Это работает хорошо; клиент сообщает мне выделенный номер порта, и я могу затем использовать его для создания обратного соединения со своей машиной (или другой в моей сети) вручную.

Проблема в том, что мне нужно написать несколько скриптов для использования другими на удаленной системе, и мне нужно средство для определения на удаленном конце, какой номер порта у этого сеанса. Я посмотрел на переменные среды SSH_* в сеансе, и ни одна из них не помогла. Я попытался просмотреть вывод, ss -le | grep "uid:$UID"и это находит порт среди других, но это кажется немного запутанным и не всегда работает, особенно если у пользователя запущены другие процессы, возможно, в других сеансах входа.

Существует ли точный и менее запутанный способ найти динамически выделенный номер удаленного перенаправленного порта?

Редактировать: Я только что обнаружил, что это дубликатэтот предыдущий пост, где вопрос был задан немного другими словами, но это то же самое. К сожалению, я не могу использовать решения, которые включают root или sudo на сервере.

Я полагаю, что то, что мне нужно, может оказаться невозможным сделать надежным способом, что делает функцию автоматического выбора порта гораздо менее полезной.

Связанный контент