
Удаленное подключение к серверу по паролю — не самая безопасная практика. Даже надежный пароль со спецсимволами, цифрами и буквами разных регистров могут перехватить или скомпрометировать. Решение этой проблемы — криптографические SSH-ключи.
Данная статья поможет разобраться в том, как работают такие ключи, и в том, как их использовать. Пройдем по всему процессу: от генерации ключевой пары до настройки подключения к облачному серверу.
Что такое SSH-ключ и зачем он нужен
SSH-ключ — это альтернатива традиционному паролю для аутентификации пользователя на сервере. Он представляет собой пару криптографических файлов, которые в связке доказывают системе, что у пользователя есть право на доступ.
Преимущества SSH-ключей перед паролями
- Безопасность. Подобрать ключ практически невозможно. Например, RSA-ключ длиной в 2048 бит по уровню безопасности равен паролю из 600+ символов.
- Удобство. После настройки не нужно вводить пароль при каждом подключении. Особенно полезно, если вы часто подключаетесь к серверу или используете автоматизированные скрипты.
- Защита от брутфорса. Использование ключей исключает риск атаки с перебором паролей. Такой тип атак на серверы — один из самых распространенных.
Что такое пара ключей: публичный и приватный
Ключевая пара состоит из двух файлов:
- Приватный ключ (Private Key). Это ваш файл, который не должен покидать ваш компьютер. Обычно он называется id_rsa или id_ed25519. Им шифруются данные, которые может расшифровать только соответствующий ему публичный ключ.
- Открытый ключ (Public Key). Этот ключ не является секретным, и именно его вы загружаете на сервер. Имя файла обычно заканчивается на .pub, например id_rsa.pub или id_ed25519.pub. Сервер использует этот открытый ключ для проверки подлинности данных, зашифрованных вашим приватным ключом.
Процесс аутентификации работает так: сервер просит ваш клиент доказать, что он владеет приватным ключом. Клиент подписывает запрос своим приватным ключом и отправляет обратно. Сервер проверяет подпись с помощью хранящегося у него открытого ключа. Если все сходится, сессия начинается.
Генерация SSH-ключей в Linux и macOS
Семейство *nix-подобных систем уже имеет встроенный инструмент для работы с SSH. Для создания ключей на Linux и macOS достаточно одной команды в терминале.
Команда генерации (ssh-keygen)
Основной инструмент, который нам понадобится — утилита ssh-keygen. Она входит в стандартный пакет OpenSSH.
Чтобы запустить процесс, откройте терминал и введите команду:
ssh-keygen
Типы ключей и рекомендуемые параметры
Хотя простая команда ssh-keygen сработает, рекомендуется явно указать тип и размер ключа для повышения безопасности.
- -t (type): задает алгоритм шифрования. Современная рекомендация — ed25519. Он производительнее и безопаснее старого rsa.
- -b (bits): задает размер ключа для алгоритма RSA. Если вы по какой-то причине используете RSA, размер должен быть не менее 2048 бит, а лучше — 4096.
Рекомендуемые команды для генерации SSH-ключа
Здесь все зависит от вашего проекта. Если можете использовать современные стандарты, лучше использовать команду:
ssh-keygen -t ed25519
Если нужна совместимость со старыми системами, рекомендуем команду:
ssh-keygen -t rsa -b 4096
Пример реакции терминала
После запуска команды утилита может запросить дополнительные команды:
«Enter file in which to save the key…»
Система предлагает сохранить ключ в стандартном каталоге ~/.ssh/. Это домашняя директория текущего пользователя (например, /home/user/.ssh/id_ed25519).
Если не нужно менять путь, просто нажмите клавишу Enter.

«Enter passphrase (empty for no passphrase):»
Система предлагает задать кодовую фразу (passphrase). Это дополнительный уровень защиты: даже если ваш приватный ключ украдут, без этой фразы воспользоваться им не получится.
После этого генерация SSH-ключа будет завершена. Вы увидите подтверждение и «отпечаток» (fingerprint) ключа.

Теперь в каталоге ~/.ssh/ на вашем компьютере находятся два новых файла.
Как создать SSH-ключ в Windows
В Windows есть два способа сгенерировать ключ. В Windows 10 и 11 есть OpenSSH — встроенный SSH-клиент. С ним процесс аналогичен тому, что мы описали выше для *nix-подобных систем.
Если вы используете более старую версию Windows или предпочитаете классические инструменты, воспользуйтесь утилитой PuTTYgen.
Способ 1: OpenSSH (PowerShell / CMD)
Если на вашем компьютере установлена актуальная версия Windows, самый простой способ — использовать ту же команду, что и в Linux.
Откройте PowerShell или командную строку (CMD), введите команду для генерации, например, с современным алгоритмом:
ssh-keygen -t ed25519
Система задаст те же вопросы о пути сохранения файла и кодовой фразе. По умолчанию система сохранит ключи в C:\Users\ИмяПользователя\.ssh\.
Процесс полностью идентичен описанному для Linux.
Способ 2: PuTTYgen
PuTTY — популярный SSH-клиент для Windows. В его состав входит утилита PuTTYgen для генерации ключей через графический интерфейс.
- Запуск. Запустите puttygen.exe.
- Генерация. В открывшемся окне убедитесь, что внизу выбран тип ключа (например, RSA 2048 или Ed25519) и нажмите кнопку Generate.
- Движение мыши. Программа попросит вас хаотично двигать мышью в пустой области окна. На основе этих случайных движений система сгенерирует ключ.
- Кодовая фраза. После генерации вставьте содержимое вашего будущего ssh public key из верхнего поля в безопасное место. Затем введите и подтвердите надежную кодовую фразу в полях Key passphrase и Confirm passphrase.
- Сохранение ключей. Нажмите кнопку Save private key для сохранения приватного ключа. Он сохранится в формате .ppk, который используется PuTTY. Затем скопируйте строку открытого ключа из текстового поля вверху окна. Именно эту строку вы будете добавлять на сервер.
Добавление публичного ключа SSH на сервер
Чтобы сервер начал принимать подключения по ключу, на него нужно скопировать ваш открытый ключ.
Через терминал — подходит для Linux, macOS и Windows
Работа через терминал потребует временного доступа к серверу по паролю.
Способ 1: Автоматический (рекомендуемый). Существует специальная утилита ssh-copy-id, которая делает все за вас. Она копирует ключ и устанавливает правильные права на файлы. Если вы генерировали ключ для root, то и команду нужно выполнять для этого пользователя.
ssh-copy-id user@server_ip
Замените user на имя вашей учетной записи на сервере, а server_ip — на его IP-адрес. Утилита запросит пароль от этой учетной записи в последний раз.
Способ 2: Ручной. Если ssh-copy-id недоступна, вы можете сделать запись вручную. Публичные ключи пользователей хранятся на сервере в файле ~/.ssh/authorized_keys. Каждая строка в файле — это один ключ.
С вашего локального компьютера выполните команду, которая прочитает ваш ssh public key и добавит его в нужный файл на сервере:
cat ~/.ssh/id_ed25519.pub | ssh user@server_ip "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Эта длинная команда выполняет сразу несколько действий: создает каталог .ssh (если его нет), создает файл authorized_keys (если его нет), выставляет правильные права и дописывает ваш ключ в конец файла.
Через панель управления
Большинство облачных провайдеров предоставляют веб-интерфейс для управления SSH-ключами. Это удобнее, чем копировать ключи вручную через терминал.
Обычно процесс выглядит так:
- Откройте панель управления и перейдите в раздел Аккаунт → Доступ → SSH-ключи.
- Нажмите кнопку Добавить ключ.
- Придумайте имя для ключа.
- Вставьте в текстовое поле содержимое вашего публичного ключа — строку, которая начинается с ssh-ed25519 или ssh-rsa.
- Нажмите Добавить.
После этого при создании нового сервера вы сможете выбрать сохранённый ключ из списка. Система автоматически добавит его в файл ~/.ssh/authorized_keys, и сервер будет готов к подключению без пароля сразу после запуска.
Облачные серверы Servercore
Готовность к работе за несколько минут. Автоустановка SSH-ключей при создании. Масштабирование в пару кликов.
Узнать большеПодключение к серверу по SSH-ключу
После того как ключ добавлен на сервер, можно проверить удаленное подключение.
Если вы использовали OpenSSH
В терминале на Linux, macOS или в PowerShell на Windows просто выполните команду:
ssh user@server_ip
Если вы установили кодовую фразу (passphrase), система попросит вас ее ввести. Пароль от сервера запрашиваться не будет.
Если вы использовали PuTTY
- Запустите PuTTY.
- В поле Host Name (или IP address) введите user@server_ip.
- В меню слева перейдите в раздел Connection -> SSH -> Auth.
- Нажмите кнопку Browse… и выберите ваш сохраненный приватный ключ в формате .ppk.
- Нажмите Open для запуска подключения.
Как Servercore упрощает работу с SSH-ключами
Вы уже знаете, как создать и настроить SSH-ключи через терминал. Но если вы управляете несколькими серверами или работаете в команде, ручная настройка на каждой машине превращается в рутину. Servercore берёт эту задачу на себя.
Добавьте ключ один раз — используйте везде
В панели управления Servercore в разделе Аккаунт → Доступ → SSH-ключи вы можете сохранить все свои публичные ключи. Присвойте каждому понятное имя вроде «Рабочий ноутбук» или «Домашний компьютер» — и ключ станет доступен во всех ваших проектах автоматически.
Панель проверяет корректность ключей при загрузке и предупредит, если вы случайно попытаетесь добавить приватный ключ вместо публичного.
Автоматическая установка на новые серверы
При создании сервера просто выберите нужные SSH-ключи из списка. Система автоматически добавит их в ~/.ssh/authorized_keys, и сервер будет готов к безопасному подключению сразу после запуска. Вы можете также выбрать ключ по умолчанию, чтобы он применялся ко всем новым серверам автоматически.
Управление командным доступом
Каждый член команды добавляет свой ключ в профиль. При создании сервера вы выбираете, кому нужен доступ — и всё. При увольнении сотрудника достаточно удалить его ключ из проекта, не редактируя authorized_keys на каждом сервере вручную.
В результате
Вместо того чтобы каждый раз выполнять ssh-copy-id, копировать ключи и следить за правами доступа, вы управляете всем из одного места. Это экономит время и снижает риск ошибок, особенно когда серверов много.
Выделенные серверы Servercore
Максимальная производительность с полным контролем. SSH-доступ настраивается в панели управления. SLA 100%.
Узнать большеЗаключение
Настройка аутентификации по SSH-ключу поможет сделать работу проще и безопаснее. Такую аутентификацию можно подключить на любой популярной операционной системе. Даже если вы настраиваете ключи впервые, процесс не займет больше 20 минут.