Если я подключаюсь к серверу следующим образом:
JP_PORT=$(shuf -i 8895-9100 -n 1)
TB_PORT=$(shuf -i 6010-6200 -n 1)
ssh -Y -L ${JP_PORT}:127.0.0.1:${JP_PORT} -L ${TB_PORT}:127.0.0.1:${TB_PORT} <host>
Как только соединение установлено, есть ли какая-нибудь терминальная команда, которая будет возвращать список портов, которые я перенаправил?
Можно перечислить через lsof
sudo lsof -i -n
Можно использовать grep для фильтрации результатов
sudo lsof -i -n | grep ssh
Если достаточно перечислить только переданные соединения, которые на самом деле используются, и если Ваша сессия является интерактивной (как в Вашем случае), можно использовать ~#
Escape в рамках ssh сессии. Просто тип вводит ~#.
$ ssh -L1234:localhost:22 localhost
seb@localhost's password:
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-23-generic x86_64)
$ ~#
The following connections are open:
#2 client-session (t4 r0 i0/0 o0/0 fd 7/8 cc -1)
#3 direct-tcpip: listening port 1234 for localhost port 22, connect from 127.0.0.1 port 37238 to 127.0.0.1 port 1234 (t4 r1 i0/0 o0/0 fd 10/10 cc -1)
Это также перечислит передачи, которые были добавлены позже в рамках сессии с помощью команд Escape и таким образом не появляются на командной строке.
Попробовать ~?
для других полезных команд в ssh сессии. См. также раздел по СИМВОЛАМ ESC в ssh странице руководства.