ubuntu linux Настроить туннель -- прокинуть порт чтобы подключиться к сервису удалённо через SSH (тунеллирование)

Ситуация

Предположим, что на удалённой машине работает какой-то сервис, к которому можно на той удалённой машине подключиться, скажем на порт 3306, но этот порт не открыт наружу, а потому вы можете со своей машины просто взять и подключиться к этой службе (сервису).

Построение туннеля и подключения по SSH с проброской порта (команда терминала)

Чтобы подлючиться к сервису на удалённой машине, вам придётся построить туннель, указав между портом вашей локальной машины (например, 3307) и портом удалённой машины (например, 3306), для этого к обычным опциям команды подключения через SSH следует добавить ещё несколько, а именно общая схема команды в терминале такова:

ssh -L lPort:127.0.0.1:rPort ruser@rIPadrees -pRSSHPort

Например:
ssh -L 3307:127.0.0.1:3306 master@85.220.83.162 -p2113

где:

  1. lPort (local port) -- локальный порт вашей машины -- именно на него надо будет подкючаться (как будто к своему компу), чтобы через построенный туннель подключиться к службе (сервису) на удалённый машине (сервере)
  2. rPort (remote port) -- порт на удалённой машине, который "слушает" интересующая нас служба (сервис, например mySQL)
  3. rIPadrees (remote ip address) -- адрес удалённой машины (ip или можно имя хоста, если оно настроено в ssh/config)
  4. RSSHPort (remote SSH port) -- порт, который нужен для подключения по SSH.
  5. 127.0.0.1 -- адрес, указывающий на машину (нашу локальную) на которой мы строим тоннель.

Туннель через .ssh/config (более простая и короткая команда)

То же самое можно сделать и через .ssh/config используя опцию LocalForward, например, если у вас есть подобная настройка для хоста:

Host mycoolhost
    LocalForward 3307 127.0.0.1:3306
    User master
    Hostname 88.222.88.192
    Port 2535
    IdentityFile ~/.ssh/id_rsa_22 

то открыть ssh туннель с порта 3307 локальной машины на порт 3306 хоста mycoolhost (а фактически на 3306 порт машины с ip 88.222.88.192 -- где соеденения пройдёт по порту 2535) можно простой командой:

ssh mycoolhost