В предыдущем посте мы рассмотрели базовый синтаксис команды ssh и полезные опции. Но вводить каждый раз длинный IP‑адрес, имя пользователя и порт – это просто неудобно.
В таких случаях файл SSH‑Config решает проблему за один клик. Он хранит часто используемые данные подключения, как закладки, и позволяет подключаться по простому алиасу.
Я сам, будучи новичком, не знал о существовании конфигурационного файла и часто регистрировал алиасы в .bashrc. Когда я узнал о config, понял, насколько «глупо» было то, что я делал.

Что такое SSH‑Config файл?
SSH‑Config – это пользовательский файл, определяющий поведение SSH‑клиента. В нём можно заранее задать параметры подключения (имя пользователя, порт, ключи), чтобы позже использовать только алиас.
- Расположение: обычно находится в
~/.ssh/config. Если его нет, создайте. - Создание:
touch ~/.ssh/config
chmod 600 ~/.ssh/config # обязательно 600!
Правила написания конфигурации
Файл – простая текстовая строка. Каждый блок начинается ключевым словом Host и содержит параметры.
Базовый шаблон
Host [алиас]
[опция1] [значение1]
[опция2] [значение2]
…
Host [алиас]– начало блока, определяет алиас. Можно использовать реальный адрес или шаблон с*/?.- Отступы – обязательны, но могут быть пробелами или табуляцией.
- Опции – любые параметры SSH, которые обычно передаются как
ssh -опция.
Часто используемые опции
| Опция | Описание | Пример |
|---|---|---|
HostName |
IP или домен сервера | 192.168.1.100 или example.com |
User |
Имя пользователя | ubuntu, ec2-user, root |
Port |
Порт SSH (по умолчанию 22) | 2222 |
IdentityFile |
Путь к приватному ключу | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
Включить агент‑форвардинг | yes |
StrictHostKeyChecking |
Жёсткая проверка ключа | no (тест) |
PortForwarding |
Разрешить порт‑форвардинг | yes |
LocalForward |
Локальный порт‑форвардинг | 8080 localhost:80 |
ServerAliveInterval |
Интервал проверки живости | 60 |
ServerAliveCountMax |
Кол-во попыток перед разрывом | 3 |
Пример конфигурации
Добавим несколько серверов в ~/.ssh/config.
# Первый сервер: веб‑сервер (алиас: webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver
# Второй сервер: dev‑сервер (алиас: devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev
LocalForward 8000 localhost:80
# Третий сервер: все AWS EC2 (алиас: aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
ServerAliveInterval 60
ServerAliveCountMax 3
# Общие настройки для диапазона IP (алиас: 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Пояснения:
webserver– подключение к192.168.1.100какubuntuчерез порт2222и ключid_ed25519_webserver.devbox– подключение кdev.example.comкакdeveloperс ключомid_rsa_devи локальным порт‑форвардингом 8000 → 80.aws-*– любые алиасы, начинающиеся сaws-, автоматически используютec2-userи ключaws_ec2_key.pem.10.0.0.*– любой IP из диапазона10.0.0.xподключается какadminна порт22.
На практике я редко использую шаблоны с
*. Обычно создаю отдельный алиас для каждого сервера, но иногда удобно иметь общий алиас для группы.

Как использовать конфиг
После сохранения конфигурации подключаться становится проще.
1. Подключение по алиасу
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
Это эквивалентно
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100.
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
Преимущества использования конфигурации
- Удобство – короткие алиасы вместо длинных команд.
- Производительность – быстро переключаться между серверами.
- Управляемость – все параметры в одном месте, легко обновлять.
- Безопасность – ключи не попадают в историю команд.
Итоги
Файл ~/.ssh/config – незаменимый инструмент для всех, кто регулярно использует SSH. Создайте свои алиасы и наслаждайтесь более быстрым и безопасным подключением. Если хотите узнать больше, ищите в поиске «ssh» – там много полезных статей.
Если возникнут вопросы, пишите в комментариях!