SSH-туннель: что это такое и как настроить безопасный доступ к скрытым сервисам

SSH-туннели подходят для безопасного доступа к внутренним сервисам без публикации портов наружу. Подход удобен администраторам, инженерам и разработчикам, работающим с закрытыми HTTP-панелями, базами данных и приватными API. Проброс портов выполняется через защищённое SSH-соединение, а сервисы остаются недоступны извне.
Зачем нужны SSH-туннели
- доступ к админ-панелям и приватным UI;
- подключение к PostgreSQL, MySQL, Redis, доступным только по
127.0.0.1; - работа с внутренними API;
- отладка сервисов без изменения настроек сети и firewall.
Как работает SSH-туннель
Туннель привязывает локальный порт к порту на удалённом сервере. Пример:
- сервис на сервере слушает
127.0.0.1:3002; - создаётся туннель
3002 → 127.0.0.1:3002; - переход по адресу
http://localhost:3002открывает удалённый UI.
Что нужно для настройки
- адрес сервера;
- SSH-учётные данные (ключ или пароль);
- порт сервиса на сервере (например
3002,5432,6379).
SSH-туннель на Linux и macOS
На системах используют стандартную команду ssh с опцией -L.
Базовый синтаксис
ssh -L <локальный_порт>:127.0.0.1:<удалённый_порт> <пользователь>@<сервер>Например, проброс веб-панели:
ssh -L 3002:127.0.0.1:3002 user@server.comПосле подключения UI будет доступен по адресу http://localhost:3002.