Один короткий SSH-псевдоним вместо длинной команды

Host, IdentityFile и диагностический режим для ежедневной работы с сервером.

Если для подключения приходится вспоминать пользователя, порт и путь к ключу, перенесите параметры в клиентский конфиг. Это уменьшит число опечаток и сделает рабочие команды одинаковыми на каждый день.

Добавить именованный хост

Создайте или дополните ~/.ssh/config. Пример использует зарезервированный для документации IP: замените его реальным адресом. Приватный ключ по указанному пути должен уже существовать.

ssh
Host notebook
    HostName 203.0.113.10
    User deploy
    Port 22
    IdentityFile ~/.ssh/id_ed25519_notebook
    IdentitiesOnly yes
    ServerAliveInterval 30
    ServerAliveCountMax 3

Теперь подключение выглядит как ssh notebook. Те же настройки хоста использует scp. IdentitiesOnly ограничивает выбор настроенными идентификаторами, что полезно при большом количестве ключей в агенте.

Проверить итоговые параметры

bash
ssh -G notebook
ssh -v notebook

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

Порядок блоков имеет значение

Для большинства параметров используется первое полученное значение. Поэтому специфичные блоки Host удобно размещать раньше общих настроек Host *. Иначе общее значение может неожиданно победить настройку конкретного сервера.

Проверка ключа сервера

Псевдоним не заменяет проверку подлинности сервера. При первом подключении сравните отпечаток host key с доверенным источником, например консолью провайдера. Если ключ неожиданно изменился, выясните причину. Не отключайте StrictHostKeyChecking как постоянное решение. Keepalive помогает обнаружить обрыв соединения, но не гарантирует сохранение работающей удалённой команды.

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

OpenSSH: ssh_config ↗