TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Linux Ready | DevOps

7 Oct, 14:12

Открыть в Telegram Поделиться Пожаловаться

Подключаемся к закрытым серверам через SSH ProxyJump!

В инфраструктуре серверы часто не имеют публичного IP-адреса и доступны только из внутренней сети. При этом отдельный сервер может быть доступен извне и использоваться как промежуточный SSH-узел — bastion или jump host.

Например, bastion доступен по адресу 203.0.113.10, а внутренний сервер имеет адрес 10.0.0.20. Напрямую подключиться к внутреннему серверу из внешней сети нельзя:
ssh admin@10.0.0.20

Если bastion имеет доступ к 10.0.0.20:22, используем ProxyJump:
ssh -J user@203.0.113.10 admin@10.0.0.20

(адреса в примерах документационные — при повторении замените их на свои)

SSH сначала подключится к 203.0.113.10, а соединение с SSH-сервером на 10.0.0.20 будет установлено через этот промежуточный узел.

Если SSH на bastion работает на нестандартном порту, его можно указать прямо в параметре -J:
ssh -J user@203.0.113.10:2222 admin@10.0.0.20

Для постоянной работы удобнее описать оба сервера в ~/.ssh/config:
Host bastion
HostName 203.0.113.10
User user

Host internal
HostName 10.0.0.20
User admin
ProxyJump bastion

После этого подключение к внутреннему серверу выполняется обычной командой:
ssh internal

Через тот же маршрут можно использовать scp:
scp backup.tar.gz internal:/tmp/

Или sftp:
sftp internal

Если до целевого сервера нужно пройти через несколько промежуточных узлов, их можно перечислить через запятую:
ssh -J user@gateway1,user@gateway2 admin@internal

То же самое можно записать в конфигурации:
Host internal
HostName 10.0.0.20
User admin
ProxyJump gateway1,gateway2

Для bastion и внутреннего сервера можно использовать разные SSH-ключи:
Host bastion
HostName 203.0.113.10
User jump
IdentityFile ~/.ssh/bastion_ed25519

Host internal
HostName 10.0.0.20
User admin
IdentityFile ~/.ssh/internal_ed25519
ProxyJump bastion

Приватный ключ от внутреннего сервера при этом не требуется копировать на bastion. Аутентификацию на конечном сервере выполняет локальный SSH-клиент.

Посмотреть итоговую конфигурацию, которую SSH применит для подключения, можно через:
ssh -G internal

Например, отдельно вывести основные параметры:
ssh -G internal | grep -Ei 'hostname|user|proxyjump|identityfile'

Если соединение не устанавливается, запускаем SSH с диагностическим выводом:
ssh -v internal

Для более подробной диагностики:
ssh -vvv internal

Так можно увидеть установление соединения через промежуточный узел, выбор ключей, проверку host key и этапы аутентификации.

ProxyJump можно использовать вместе с обычным port forwarding. Например, PostgreSQL работает на внутреннем сервере и слушает только локальный порт 5432:
ssh -N -J user@203.0.113.10 \
-L 5433:127.0.0.1:5432 \
admin@10.0.0.20

После этого локально подключаемся к базе через порт 5433:
psql -h 127.0.0.1 -p 5433 database

SSH-соединение пройдёт через bastion до внутреннего сервера, а перенаправление на 127.0.0.1:5432 будет выполнено уже со стороны конечного SSH-сервера.

🔥 ProxyJump позволяет подключаться к серверам во внутренних сетях через bastion без ручного создания промежуточных SSH-сессий. Настройку можно вынести в ~/.ssh/config и использовать тот же маршрут для ssh, scp, sftp и SSH-туннелей.

🚪 Linux Ready | #практика

1.1k 0 51 33
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot