Как сгенерировать SSH-ключ для доступа на сервер
Разбираемся, как создать шифрованный протокол для связи с сервером и входить в систему без пароля учетной записи.
Использование SSH-ключей — простой и надежный способ защиты соединения с сервером. В отличие от стандартного пароля, подобрать или перехватить криптографический ключ практически невозможно.
Ниже представлена пошаговая инструкция по генерации, а также разобраны основные принципы работы этой технологии.
Как работают SSH-ключи
Принцип работы базируется на асимметричном шифровании. Вместо одного пароля генерируется связка из двух математически неразделимых ключей: закрытого приватного и открытого публичного.
Приватный ключ — как обычный, который нельзя никому давать. Он должен храниться строго на локальном компьютере в тайне и не попадать в сеть.
Публичный ключ — это аналог традиционного замка, который у всех на виду. Его можно свободно копировать на любые нужные серверы, не опасаясь, что кто‑то подсмотрит.
При попытке подключения сервер — на котором установлен «замок» — отправляет сложную криптографическую задачу. Решить ее может только то устройство, которое владеет правильным приватным ключом. Весь процесс вычислений происходит автоматически, обеспечивая мгновенный и безопасный вход.
Где необходимо вводить команды
Важное правило: генерация пары ключей всегда выполняется на локальном устройстве, с которого планируется осуществлять подключение к удаленным серверам.
Формировать ключи прямо на сервере — серьезная ошибка. В таком случае приватную часть придется скачивать к себе через сеть, что создает риск перехвата данных и нарушает саму идею безопасности — секретный файл вообще не должен покидать пределы устройства-создателя. По сети передается исключительно публичная часть.
Доступ с нескольких устройств
Что, если устройств, которые подключаются к удаленному серверу, несколько? Как безопасно перенести приватную часть с одного из них на другие?
Кратко: никак.
Есть золотое правило: одно устройство — одна пара ключей. Вместо того чтобы размножать секрет, общепринятая практика индустрии — создавать уникальную пару SSH-ключей на каждом устройстве, с которого инициируется соединение.
- Генерируется пара ключей на рабочем ноутбуке — публичная часть копируется на удаленный сервер.
- Точно так же создается совершенно новая пара ключей на домашнем компьютере — и точно так же публичная часть оказывается на том же сервере. Файл
~/.ssh/authorized_keysспециально спроектирован так, чтобы хранить множество публичных ключей.
Почему так и безопаснее, и удобнее?
Представим, что на трех устройствах один приватный ключ. И вдруг какое‑то из них теряется — например, телефон.
Чтобы злоумышленник не проник на сервер, все что нужно сделать — удалить с того скомпрометированный публичный ключ. Всего делов‑то!
Но вот незадача! На всех устройствах — одинаковые приватные ключи. Удалив публичную часть с сервера — закроется доступ и для оставшихся безопасных устройств. Фатального, конечно, ничего не произошло — просто придется проделать всю работу заново, в том числе и перенос публичных ключей в поля панели управления.
Если же у каждого устройства свой независимый ключ:
- при утрате одного из них, нужно просто зайти на сервер с другого и удалить из списка авторизованных ключей только одну строчку — конкретный публичный ключ;
- доступ для «потеряшки» мгновенно закрывается;
- все остальные устройства продолжают спокойно работать без перенастройки.
Создание ключа в Linux и macOS
Для создания ключа потребуется открыть терминал на локальном компьютере. Для этого проще всего вызвать меню приложений — нажать Ctrl+Пробел на macOS или Super в Linux — после чего в появившемся окне набрать terminal.
Во многих дистрибутивах Linux работает комбинация Ctrl+Alt+T.
В открывшемся окне терминала выполним следующую команду:
ssh-keygen -t rsa
На экране появится диалог с предложением выбрать путь для сохранения файлов:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Здесь достаточно нажать клавишу Enter, чтобы оставить путь по умолчанию — скрытый каталог .ssh в домашней директории пользователя.
В Unix‑подобных системах, таких как Linux и macOS, скрытые файлы и каталоги начинаются с точки — по умолчанию они не отображаются, чтобы не загромождать вывод.
Далее система предложит ввести кодовую фразу для дополнительной защиты самого файла ключа — на случай, если к локальному компьютеру кто‑то посторонний все же получит физический доступ.
Enter passphrase (empty for no passphrase):
Если работа ведется на персональном устройстве, вход в него защищен и нет необходимости в дополнительных мерах предосторожности, то этот шаг можно пропустить, дважды нажав Enter.
Важно учитывать, что при вводе парольной фразы, на экране ничего не отображается, нет никакого способа подсмотреть вводимые символы, а значит — и надежно отредактировать ввод.
Будьте внимательны к выбранному языку, регистру символов и к нажимаемым клавишам!
После завершения процесса терминал выведет сообщение об успешном сохранении, а также цифровую подпись (fingerprint) и ее графическое представление.
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
476:b2:a8:7f:08:b4:c0:af:81:25:7e:21:48:01:0e:98 user@localhost
The key's randomart image is:
+--[ RSA 2048]----+
|+.o. |
|ooE |
|oo |
|o.+.. |
|.+.+.. S . |
|....+ o + |
| .o .... |
| . .. . |
| .... |
+-----------------+
После успешной генерации SSH-пары на компьютере появляются два математически связанных файла — закрытый приватный и открытый публичный ключи — в том каталоге, который мы указали, то есть ~/.ssh/ по умолчанию.
Названия файлов зависят от алгоритма шифрования, который использовался. Чаще всего это классический RSA или более современный Ed25519:
id_rsa(илиid_ed25519) — приватный ключ,id_rsa.pub(илиid_ed25519.pub) — публичный ключ.
Теперь публичную часть необходимо разместить на сервере. Чтобы вывести содержимое открытого ключа на экран, используется команда:
cat ~/.ssh/id_rsa.pub
Публичный ключ можно также найти и скопировать, используя системный менеджер файлов.Появившийся длинный набор символов следует полностью скопировать и вставить в соответствующее поле панели управления сервером, либо вручную добавить в файл ~/.ssh/authorized_keys на удаленной машине. Название — произвольное, оно просто для удобства, ведь ключей на сервере может быть несколько.

После добавления публичного ключа для соединения применяется стандартная команда:
ssh root@[IP-адрес сервера]
Если все сделано правильно, сеанс откроется сразу, без запроса пароля.
Стоит отметить, что при первом успешном подключении к новому серверу, в той же папке .ssh автоматически создастся файл known_hosts. В нем локальный компьютер сохраняет цифровые «слепки» серверов для защиты от подмены сервера злоумышленниками.
Создание ключа в Windows
В современных версиях Windows (10 и 11) уже встроен клиент OpenSSH, поэтому процесс полностью идентичен инструкции для Linux и macOS — команды вводятся в приложении PowerShell или в командной строке (cmd), которую можно открыть с помощью комбинации клавиш Win+R.
Файлы сохраняются в профиле текущего пользователя:
- Путь:
C:\Users\<Ваше_Имя_Пользователя>\.ssh\ - Файлы:
id_rsa(приватный) иid_rsa.pub(публичный).
Если требуется использовать классический сторонний клиент PuTTY, алгоритм действий следующий:
1. Скачать клиент с официального сайта. Установка не требуется — достаточно распаковать архив.
2. Запустить файл puttygen.exe.

3. В нижней части открывшегося окна выбрать тип шифрования SSH-2 RSA и длину 2048 бит.
4. Нажать кнопку Generate.
5. Во время генерации необходимо хаотично водить курсором мыши в пустой области окна приложения. Такие движения используются для сбора псевдослучайных данных, на основе которых формируется надежный шифр.

6. Сохранить полученную пару на локальном диске с помощью кнопок Save public key и Save private key.
PuTTYgen не создает файлы в автоматическом режиме в скрытой папке. Нужно явно указать, куда сохранить их при нажатии кнопок Save public key и Save private key.
Приватный ключ сохраняется в специальном проприетарном формате PuTTY. По умолчанию ему присваивается расширение .ppk (PuTTY Private Key).
Публичный ключ записывается как обычный текстовый файл. Назвать его можно как угодно, но для порядка обычно используют расширение .pub.
7. Скопировать текст публичного ключа из верхнего поля окна и добавить его на удаленный сервер.
Заключение
Мы подробно разобрали процесс генерации SSH-ключей для современных операционных систем. Использование криптографических пар надежно защищает инфраструктуру от попыток подбора паролей и делает авторизацию удобнее, позволяя настроить безопасный вход на серверы без постоянного ввода учетных данных.
Главное правило, о котором необходимо помнить: приватная часть ключа всегда должна оставаться на локальном устройстве в строгом секрете. На удаленные серверы копируется исключительно публичный ключ.