DevOps и серверы
Конструктор ~/.ssh/config
Собирает Host-блоки с ключами и ProxyJump, а рядом строит команду проброса портов и объясняет, в какую сторону этот проброс работает.
Хосты
ssh prod
~/.ssh/config
Host prod HostName 203.0.113.10 User root IdentityFile ~/.ssh/id_ed25519 IdentitiesOnly yes Host * ServerAliveInterval 30 ServerAliveCountMax 3
Проброс портов
ssh -N -L 5433:localhost:5432 prodУ вас открывается 127.0.0.1:5433. Обращение туда идёт по шифрованному каналу на «prod», и уже он соединяется с localhost:5432. Так ходят в базу, закрытую файрволом.
Пояснения
- · ServerAliveInterval не даёт NAT-у и файрволу выбросить простаивающее соединение.
- · Host * стоит последним: ssh берёт первое подходящее значение сверху вниз, поэтому общие настройки должны идти после блоков конкретных хостов — иначе они перебьют то, что задано для хоста.
- · IdentitiesOnly yes нужен всегда, когда указан IdentityFile: иначе ssh-agent сначала перебирает все свои ключи и сервер отключает вас по MaxAuthTries.