Что настраиваем
Это настройка клиента 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.