SSH-ключи под контролем: пошаговая инструкция по настройке и копированию
SSH-ключи позволяют подключаться к серверу без постоянного ввода пароля. Чтобы настроить такой доступ, нужно создать пару ключей, передать открытый ключ на сервер и настроить аутентификацию.
Подробнее о принципах работы открытых и закрытых ключей рассказали отдельно. Здесь же сосредоточимся на практике: создадим SSH-ключ, скопируем его на сервер и настроим подключение.

Открытый и закрытый SSH-ключиЧто нужно для настройки
Для работы понадобятся:
доступ к серверу по SSH;
имя пользователя и IP-адрес или доменное имя сервера;
OpenSSH или другая утилита для работы с SSH.
В примерах будем использовать ключи Ed25519. Если требуется совместимость с устаревшими системами, можно использовать RSA — асимметричную систему, где данные шифруются открытым ключом, а расшифровываются закрытым.
Генерация SSH-ключей
Процесс создания ключей зависит от операционной системы. Рассмотрим основные варианты для Linux, macOS и Windows.

Использование ssh-keygen на Linux и macOS
Пошаговая инструкция:
1. Откройте терминал с помощью настроенного сочетания клавиш или через меню приложений.
2. Выполните команду для генерации ключа:
Генерация SSH-ключей в Linux3. Выберите путь для сохранения ключа. По умолчанию ключ сохранится в файле ~/.ssh/id_ed25519. Если вас это устраивает, нажмите Enter.
4. Укажите парольную фразу для дополнительной защиты ключа либо пропустите этот этап.
5. Проверьте, что ключи создались с помощью команды:
Должны появиться файлы:
id_ed25519 — закрытый ключ;
id_ed25519.pub — открытый ключ.
Генерация SSH-ключей в Windows
Для генерации ключей можно использовать встроенный в Windows 10 и 11 OpenSSH.
Действуйте так:
1. Откройте PowerShell или CMD и проверьте, доступна ли команда ssh. Если набор утилит OpenSSH не установлен, откройте «Настройки» → «Приложения» → «Дополнительные компоненты Windows».
2. Установите OpenSSH Client.
3. Откройте PowerShell и выполните команду:
Генерация SSH-ключа в WindowsЕсли требуется совместимость со старыми системами, можно использовать RSA:
4. Укажите путь для сохранения ключа. По умолчанию он сохраняется в C:\Users\<username>\.ssh\id_ed25519
Если путь подходит, нажмите Enter. Если нет — укажите другой.
5. Настройте парольную фразу, если хотите дополнительно защитить ключ.
6. Убедитесь, что ключи созданы. Зайдите в папку C:\Users\<username>\.ssh.
В ней должны появиться закрытый ключ id_ed25519 и открытый — id_ed25519.pub.
Генерация ключа с помощью PuTTYgen
Для работы со старыми системами или при необходимости можно использовать программу PuTTY и утилиту PuTTYgen.
Если программа установлена, найдите и откройте ее из меню «Пуск»:
В PuTTYgen выберите тип ключа — Ed25519. Если требуется совместимость, выберите RSA с длиной 4096 бит.
Нажмите кнопку Generate и подвигайте мышью в открывшемся окне.
При необходимости задайте парольную фразу — Key passphrase.
Нажмите Save private key и сохраните файл закрытого ключа с расширением .ppk.
Сохраните публичный ключ.
Скопируйте содержимое поля Public key for pasting into OpenSSH authorized_keys file. Его нужно будет добавить на сервер.
Копирование SSH-ключа на сервер
Чтобы настроить аутентификацию по ключу, на сервер нужно передать открытый ключ. Это можно сделать автоматически или вручную.
Автоматическое копирование с SSH-Copy-ID
SSH-Copy-ID — утилита для копирования публичного SSH-ключа на удаленный сервер.
Чтобы передать ключ, используйте команду:
Утилита подключится к серверу по SSH и попросит ввести пароль от аккаунта на удаленном сервере. После этого она автоматически добавит открытый ключ в файл ~/.ssh/authorized_keys. Также будут настроены необходимые разрешения для файлов и каталогов на сервере.
Например, ваш сервер находится по адресу 192.168.1.100, а имя пользователя — admin. Команда будет выглядеть так:
Если нужно использовать конкретный открытый ключ, укажите его явно:
Как добавить ключ вручную
Если ssh-copy-id недоступна, открытый ключ можно скопировать вручную. На Linux или macOS выведите его содержимое:
На Windows откройте файл id_ed25519.pub и скопируйте его содержимое. Затем подключитесь к серверу и подготовьте каталог для ключей:
Установите права доступа:
Откройте файл authorized_keys nano ~/.ssh/authorized_keys.
Вставьте содержимое открытого ключа и сохраните изменения. После этого установите права доступа для файла:
Можно также передать ключ одной командой:
Если на сервере нет каталога .ssh или файла authorized_keys, создайте их заранее.
Загрузка ключа в облачный каталог
Если нужно загрузить открытую часть ключа в облачный каталог, можно воспользоваться сервисом Evolution SSH Keys от Cloud.ru. Сервис поддерживает импорт ключей типов RSA, DSA, ECDSA, ECDSA-SK, ED25519 и ED25519-SK.
Настройка аутентификации с использованием SSH-ключей
После добавления открытого ключа нужно убедиться, что сервер разрешает аутентификацию по ключам.
Проверка прав доступа
На сервере проверьте разрешения для каталогов и файлов, связанных с SSH:
каталог ~/.ssh должен быть доступен только владельцу:
файл ~/.ssh/authorized_keys должен быть доступен только владельцу:
Закрытый ключ на пользовательском устройстве также не должен быть доступен посторонним. Например:
Проверка настроек SSH-сервера
Проверьте конфигурационный файл SSH-сервера. Обычно он находится по пути:
Например, открыть его можно так:
Проверьте, что аутентификация по ключам включена:
При необходимости укажите файл, где хранятся разрешенные ключи AuthorizedKeysFile .ssh/authorized_keys. После внесения изменений сохраните файл и перезапустите SSH-сервис.
Для Ubuntu, Debian и других систем на их основе:
Для RHEL, CentOS и Fedora:
Проверка подключения
Перед тем как отключать вход по паролю, убедитесь, что подключение по ключу работает. Выполните команду:
Если SSH использует нужный ключ, сервер не должен запрашивать пароль учетной записи. Если у вас несколько ключей или SSH выбирает не тот, укажите нужный файл явно:
Также можно настроить файл ~/.ssh/config:
После этого при подключении к указанному серверу SSH будет использовать заданный ключ.
Отключение проверки пароля
Отключать парольную аутентификацию стоит только после того, как вы убедились, что вход по ключу работает. Откройте файл /etc/ssh/sshd_config.
Найдите директиву PasswordAuthentication и установите значение PasswordAuthentication no. Сохраните файл и перезапустите SSH-службу. После этого для подключения к серверу будет использоваться аутентификация по ключам.
Использование SSH-агента
Если закрытый ключ защищен парольной фразой, ее можно не вводить при каждом подключении. Для этого используйте SSH-агент.
На Linux и macOS запустите агент:
Затем добавьте ключ:
В Windows можно использовать встроенную службу SSH Agent и добавить ключ командой:
Частые проблемы и их решения
Сервер продолжает запрашивать пароль
Проверьте:
добавлен ли открытый ключ в ~/.ssh/authorized_keys;
включена ли аутентификация по ключам;
используете ли вы правильное имя пользователя;
может ли SSH найти нужный закрытый ключ.
Permission denied при попытке подключения
Проверьте, под тем ли пользователем выполняется подключение. Также убедитесь, что открытый ключ добавлен в authorized_keys и соответствует закрытому ключу на вашем устройстве.
Небезопасные разрешения на файлы
SSH может блокировать использование ключей из-за неправильных прав доступа.
Проверьте настройки:
На сервере:
SSH использует не тот ключ
Если ключей несколько, SSH может перебирать их, пока не найдет нужный. Укажите конкретный ключ:
Либо настройте файл ~/.ssh/config.
Ключ не добавлен на сервер
Проверьте, что содержимое файла id_ed25519.pub полностью добавлено в ~/.ssh/authorized_keys.
Ключ должен находиться в домашнем каталоге того пользователя, от имени которого выполняется подключение.
SSH-агент не запущен
Если ключ не доступен для текущей сессии, запустите SSH-агент:
И добавьте ключ:
Что проверить после настройки
Перед тем как считать настройку завершенной, убедитесь, что:
пара SSH-ключей создана;
закрытый ключ сохранен только на вашем устройстве;
открытый ключ добавлен на сервер;
файл authorized_keys находится в домашнем каталоге нужного пользователя;
права доступа для .ssh и authorized_keys настроены;
SSH-сервер разрешает аутентификацию по ключам;
подключение по ключу работает;
парольная аутентификация отключена только после проверки подключения.
Заключение
Настройка SSH-ключей сводится к нескольким основным шагам: создать пару ключей, скопировать открытый ключ на сервер, настроить права доступа и проверить подключение.
После успешной проверки можно отключить вход по паролю и использовать ключ для подключения к серверу. Если что-то не работает, в первую очередь проверьте расположение ключей, содержимое authorized_keys, права доступа и настройки SSH-сервера.

