Туннельное подключение к MySQL-серверу по SSH из-под Windows
Оказывается, можно удаленно подключаться к MySQL серверу не только напрямую по IP-адресу и порту, но и через создание "туннеля" через SSH. Зачем это нужно? Ну, например, если вы хотите хотите иметь локальный GUI для управления БД сервера, но при этом не хотите открывать на сервере лишний порт (из соображений безопасности, и чтобы не усложнять конфигурацию).
На английском об этой фиче можно почитать здесь: https://hostpresto.com/community/tutorials/how-to-connect-to-a-remote-mysql-server-via-an-ssh-tunnel/ А для вас вот мое краткое русскоязычное изложение инструкции.
- для начала нам понадобится известная утилита Putty.
- откройте ее, укажите данные как для обычного SSH-подключения на первой странице.
- перейдите Connection -> SSH -> Tunnels
- в поле Source port введите "3306", в Destination: "127.0.0.1:3306" :
- нажмите Open чтобы инициализировать подключение
- в открывшемся окне терминала введите логин и пароль для подключения к серверу (именно к серверу, а не к MySQL)
- если все сделано правильно, то утилита CurrPorts ( http://www.nirsoft.net ) покажет порты 3306, открытые процессом putty.exe Если что-то не так, попробуйте отключить брендмауэр Windows.
- теперь откройте свой локальный клиент для управления БД MySQL. Например, мне понравился HeidiSQL Portable.
- настройте подключение к базе:
- Имя хоста / IP: 127.0.0.1
- Пользователь и Пароль : те, которые у вас созданы на удаленном сервере
Бинго! Имеем интерфейс для управления БД, запущенный на локальной машине!
Особенность работы SSH подключения в том, что при бездействии, оно может прерываться на стороне сервера. Для решения этой проблемы следует активировать "keep-alive" функцию вот так:

UPD: с FireBird оно тоже работает
Подобный "туннель" можно создать и для других Баз Данных, например, FireBird.
Все аналогично, но "пробрасываем" порт 3050 вместо 3306:

А теперь настраиваем локальный клиент, например IBExpert:

Готово!