У меня есть несколько машин, подключающихся к одному серверу по обратным туннелям SSH. Итак, на каждой машине выполняется команда, подобная следующей:
while true; do
ssh -X -R 19999:localhost:22 www.sern.pro
sleep 30
done
19999
здесь будет варьироваться для разных соединений (например, 19990
, 19991
и т.д.). Эти обратные SSH-соединения могут быть доступны с сервера с помощью команды, подобной следующей:
ssh -X localhost -p 19999
Как сервер может отображать список активных обратных соединений SSH? Я попытался использовать netstat
но это требует предварительного знания используемых локальных портов и не дает понять, что это обратное соединение SSH:
# netstat --all --timers | grep "19999"
tcp 0 0 localhost.localdo:19999 *:* LISTEN off (0.00/0/0)
tcp6 0 0 ip6-localhost:19999 [::]:* LISTEN off (0.00/0/0)
Следуя предложению @ frank-thomas, я попытался использовать команду netstat --all --timers --program --numeric | grep ssh
для поиска нестандартных процессов SSH. Когда я делаю это, после списков TCP netstat
я получаю списки UNIX, подобные следующим:
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ] DGRAM 64179539 28569/sshd: username [pr P475
unix 3 [ ] STREAM CONNECTED 60024486 14205/sshd: username [pr P60024485
unix 3 [ ] STREAM CONNECTED 62232808 5088/sshd: username [pri P62232133
unix 2 [ ] DGRAM 60024422 14205/sshd: username [pr P475
unix 3 [ ] STREAM CONNECTED 64180927 28569/sshd: username [pr P64180926
unix 3 [ ] STREAM CONNECTED 8303 3911/sshd P8304
unix 3 [ ] STREAM CONNECTED 60024487 14205/sshd: username [pr P60024488
unix 2 [ ] DGRAM 62232598 5088/sshd: username [pri P475
unix 3 [ ] STREAM CONNECTED 64180931 28569/sshd: username [pr P64180932
unix 3 [ ] STREAM CONNECTED 62232798 5088/sshd: username [pri P62232797
Как эти данные можно интерпретировать, чтобы получить список портов обратного туннеля SSH, используемых на сервере? Как из этого можно получить число, например 19999?