Это я вынес из LPIC-2, до этого много лет не знал. Хотя идея интересная.
Если у вас есть доступ в какую-то сеть токо по ssh, причём токо на 1 комп этой сети, на котором работает этот ssh, то вы можете лазить по сети 2мя способами.
localhost - комп, за которым вы физически сидите
ssh_server - комп, куда вы будете подключаццо
target_host - комп во внутренней удалённой сети, к которому вы хотите подключиццо
читать дальше
1) зайти на ssh_server удалённо через ssh -X, после чего окна программ будут открываться на экране того компа, за которым вы сидите физически (localhost). А работать будут на удалённом компе (ssh_server) и цепляцца к ресурсам той внутренней сети.
Минус тут в том, шо поскоку окно отрисовывается удалённо, то будут задержки, быстро не всегда получается работать.
2) использовать ssh-туннель. Ключ ssh -L local_port:target_host:target_port user@ssh_server работает так, что порт хоста где-то во внутренней удалённой сети (target_host) отображается на порт вашего локалхоста, за которым вы сидите и подключаетесь удалённо. Вы даёте эту команду, выглядит всё так, кабута вы заходите на ssh_server. Но одновременно на локалхосте создаётся сокет на указанный порт, к которому можно подключацца локальным броузером или какой протокол вам там надо. И путём подключения к локальному порту вы подключаетесь к удалённому порту хоста в удалённой внутренней сети. Хитро, а?
Если закрыть вкладку терминала, где отдали эту команду, туннель удаляется. В одной команде можно указать несколько ключей -L и отобразить нескоко портов.
туннель я увидел по netstat -an|grep local_port
Ключ -R делает то же самое, токо наоборот. Это на локалхосте у нас сервис, чей порт отображается на удалённый хост во внутренней сети.
Ключ -D делает проксирование, чо-то там SOCKS4 или SOCKS5-сервер, я хз как это работает и зачем надо.
Ну вот, для меня самое полезное пока это ключ -L
такшта мож и вам пригодицца.