Skip to content

This article is available in Russian. An English version is on the way.Open the Russian page

Файл ~/.ssh/config: короткие имена серверов

Подключение командой ssh web-01 вместо длинной строки с IP, портом и ключом; переход через промежуточный сервер.

Level
Intermediate
Reading time
2 min read
Updated
Contents
  1. Базовая запись
  2. Общие настройки для всех серверов
  3. Подключение через промежуточный сервер
  4. Права на файл
  5. Проверьте результат

Когда серверов несколько, помнить IP, порты и ключи неудобно. Клиент OpenSSH читает файл ~/.ssh/config (в Windows — %USERPROFILE%\.ssh\config) и подставляет настройки по короткому имени. Эти же имена понимают scp, rsync, sftp и git.

Базовая запись

~/.ssh/config
Host web-01    HostName 203.0.113.10    User deploy    Port 22    IdentityFile ~/.ssh/id_ed25519    IdentitiesOnly yes

Теперь достаточно команды:

bash
$ ssh web-01

IdentitiesOnly yes заставляет клиент предлагать только указанный ключ. Без этого при большом числе ключей в агенте сервер может отказать из-за превышения числа попыток.

Общие настройки для всех серверов

Блок Host * применяется ко всем подключениям. Поместите его в конец файла: для каждого параметра действует первое найденное значение.

text
Host *    ServerAliveInterval 30    ServerAliveCountMax 4    AddKeysToAgent yes

ServerAliveInterval раз в 30 секунд отправляет служебный пакет, и соединение не рвётся при простое.

Подключение через промежуточный сервер

Если внутренний сервер доступен только из частной сети, заходите на него через публичный одной командой:

text
Host bastion    HostName 203.0.113.10    User deployHost db-internal    HostName 10.0.0.5    User deploy    ProxyJump bastion

Права на файл

bash
$ chmod 600 ~/.ssh/config

Проверьте результат

Команда ssh -G показывает итоговые параметры для имени — удобно, чтобы понять, какой блок сработал:

bash
$ ssh -G web-01 | grep -E "^(hostname|user|port|identityfile)"

Read to the end and the article counts toward your learning progress.

  • ssh config
  • алиас
  • ProxyJump
  • IdentityFile
  • несколько серверов

Was this article helpful?