LinuxNotes
← Все статьи

SSH config: короткие имена для серверов

Настраиваем адрес, пользователя и ключ один раз и проверяем итоговую конфигурацию клиента.

Безопасность систем2 мин чтения

Что настраиваем

Это настройка клиента OpenSSH на Linux, а не сервера. Предполагается, что вы уже можете войти по ключу. Все изменения относятся к вашему пользователю и не требуют sudo.

Подготовьте конфигурацию

mkdir -p ~/.ssh
chmod 700 ~/.ssh

Откройте ~/.ssh/config. Если файл существует, добавьте блок, сохранив другие настройки:

Host notes-server
    HostName server.example.org
    User deploy
    Port 22
    IdentityFile ~/.ssh/id_ed25519
    IdentitiesOnly yes
    ServerAliveInterval 30
    ServerAliveCountMax 3

Замените адрес, пользователя и путь к ключу своими значениями. Домен example.org указан как пример и не является адресом вашего сервера. Если сервер использует другой порт, задайте его явно.

Подключение по имени

chmod 600 ~/.ssh/config
ssh notes-server

Псевдоним действует только в OpenSSH и совместимых клиентах, читающих этот файл. Он не создаёт DNS-запись и не будет разрешаться через ping. Для копирования файла можно использовать scp file.txt notes-server:, если доступ и права позволяют.

Как работают параметры

IdentityFile выбирает ключ, IdentitiesOnly ограничивает предлагаемые идентификаторы настроенными ключами. Проверки ServerAlive выполняются внутри защищённого соединения: они позволяют обнаружить неотвечающий сервер, но не гарантируют восстановление соединения.

Парольную фразу ключа не записывайте в config. Используйте ssh-agent или вводите её при подключении. Проверку ключа хоста оставляйте включённой и сверяйте неизвестный отпечаток по доверенному каналу.

Проверка без подключения

ssh -G notes-server | less

Команда показывает итоговые параметры, учитывая пользовательские и системные настройки. Проверьте hostname, user, port и identityfile. Для диагностики реального соединения используйте ssh -v notes-server, удалив личные данные из журнала перед публикацией.

Общие значения

Блоки конкретных хостов размещайте перед общими настройками:

Host *
    ServerAliveInterval 60

Для большинства параметров используется первое полученное значение, поэтому общий блок в начале может помешать переопределению ниже. После изменения файла сервер перезапускать не нужно: клиент читает конфигурацию при новом запуске.

Подготовка ключей: настройка SSH-сервера.

Документация: ssh_config.

Читайте дальше