Гид по технологиям

Как сгенерировать SSH-ключ в Windows

7 min read DevOps Обновлено 25 Dec 2025
Создать SSH‑ключ в Windows — инструкция
Создать SSH‑ключ в Windows — инструкция

Человек подключается к удалённым серверам с рабочего ПК

Быстрые ссылки

  • Как сгенерировать SSH-ключ в Windows
  • Генерация SSH-ключа через Командную строку
  • Генерация SSH-ключа через WSL
  • Чем отличается RSA от Ed25519

Короткое резюме

  • На Windows 11 OpenSSH клиент встроен и позволяет быстро создать ключ без сторонних программ. На Windows 10 нужно включить OpenSSH Client в параметрах системы, если он не установлен.
  • Используйте ssh-keygen или ssh-keygen -t ed25519/ssh-keygen -t rsa -b 4096 для создания пары ключей. Файлы сохраняются в каталоге пользователя в папке .ssh.
  • Храните приватный ключ в безопасности, лучше с фразой-паролем; публичный ключ копируйте в ~/.ssh/authorized_keys на сервере или в интерфейс сервисов (GitHub, GitLab, облачные панели).

Введение: зачем нужен SSH-ключ

SSH (Secure Shell) — криптографический протокол для защищённого удалённого доступа и передачи файлов. В отличие от пароля, SSH-ключи используют пару: приватный ключ (хранится у вас) и публичный ключ (устанавливается на сервере). Это надёжнее и удобнее: ключи проще автоматизировать, их сложнее подобрать, и с ними легче подключаться из CI/CD и скриптов.

Краткая дефиниция: приватный ключ — секретный файл, который никогда не должен покидать ваш компьютер; публичный ключ — файл, который вы публикуете на сервере для аутентификации.

Что нужно подготовить

  • Аккаунт администратора или возможность запускать Командную строку/терминал. Для WSL — активированный WSL и установленная дистрибуция.
  • Доступ к каталогу пользователя (обычно C:\Users\вашпользователь или /home/вашпользователь в WSL).
  • Понимание, куда вы загрузите публичный ключ (сервер, Git-сервис, облачная консоль).

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

1. Генерация SSH-ключа через Командную строку (Command Prompt)

  1. Откройте “Командная строка” (Command Prompt) от имени пользователя. Администратор не обязателен только для генерации, но может потребоваться для управления службой ssh-agent.
  2. Введите команду:
ssh-keygen
  1. По умолчанию будет предложено сохранить ключ в каталоге C:\Users\ваш_пользователь\.ssh\id_rsa (для RSA). Нажмите Enter, чтобы принять путь по умолчанию, или укажите свой путь.
  2. Введите фразу-пароль для приватного ключа (рекомендуется). Если не хотите фразу — нажмите Enter (оставьте пустым).
  3. Подтвердите фразу-пароль.

После завершения вы увидите отпечаток (fingerprint) и путь к файлам: приватный ключ (без расширения) и публичный ключ (.pub).

Копирование публичного ключа в буфер обмена (Windows):

clip < %USERPROFILE%\.ssh\id_rsa.pub

Вставьте его в интерфейс удалённого сервера или в файл ~/.ssh/authorized_keys на сервере.

Совет: чтобы использовать Ed25519, выполните:

ssh-keygen -t ed25519

Или для RSA с 4096 битами:

ssh-keygen -t rsa -b 4096

2. Генерация SSH-ключа через WSL (Windows Subsystem for Linux)

WSL даёт полноценную Linux-среду и часто удобнее для разработчиков, работающих с Linux-серверами.

Шаги:

  1. Запустите терминал WSL (например, Ubuntu через меню Windows).
  2. Выполните команду для создания RSA-ключа с 4096 бит:
ssh-keygen -t rsa -b 4096
  1. Или создайте Ed25519:
ssh-keygen -t ed25519
  1. Для удобства можно добавить комментарий (обычно email):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. Нажмите Enter для пути по умолчанию (~/.ssh/id_rsa) или укажите другой путь.
  2. Задайте фразу-пароль или оставьте пустой.

Просмотр публичного ключа в WSL:

cat ~/.ssh/id_rsa.pub

Чтобы скопировать в буфер обмена Windows из WSL (в новых версиях WSL):

cat ~/.ssh/id_rsa.pub | clip.exe

После этого вставьте ключ куда нужно.

Создание SSH-ключа в WSL (пример)

Настройка ssh-agent и добавление ключа в память

ssh-agent хранит приватный ключ в памяти, чтобы не вводить фразу-пароль при каждом подключении.

Для WSL/Linux:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Для PowerShell (Windows):

Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_rsa

Или в Командной строке:

net start ssh-agent
ssh-add %USERPROFILE%\.ssh\id_rsa

Важно: Агент должен быть запущен и иметь доступ к ключу; для автоматического добавления при входе используйте соответствующие скрипты запуска терминала.

Копирование публичного ключа на сервер вручную

На сервере под своим пользователем выполните:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ВАШ_ПУБЛИЧНЫЙ_КЛЮЧ" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Альтернатива из клиентской машины (если доступ по паролю временно разрешён):

ssh-copy-id user@host

Если ssh-copy-id недоступна на Windows, вставьте содержимое id_rsa.pub в ~/.ssh/authorized_keys через SFTP или панель управления хостингом.

Различия между RSA и Ed25519

  • Алгоритм: RSA — классический алгоритм на основе факторизации; Ed25519 — алгоритм на эллиптической кривой (Curve25519).
  • Размер ключа: типичные RSA — 2048 или 4096 бит; Ed25519 — фиксированный размер 256 бит.
  • Безопасность: Ed25519 считается более устойчивым и современным при меньшем размере ключа.
  • Производительность: Ed25519 быстрее вычисляется и требует меньше ресурсов.
  • Совместимость: RSA поддерживается почти везде; Ed25519 поддерживается современными серверами и сервисами, но в очень старых системах может не работать.

Рекомендация: используйте Ed25519 по умолчанию для новых ключей; создавайте RSA 4096, если требуется совместимость с устаревшими системами.

Таблица совместимости (ориентировочно)

  • Современные Linux-серверы: Ed25519, RSA — поддерживаются.
  • Старые OpenSSH версии (до ~2014): возможно, Ed25519 не поддерживается — используйте RSA.
  • GitHub, GitLab, Bitbucket: поддерживают Ed25519 и RSA.

Примечание: перед массовым переходом на Ed25519 проверьте совместимость ваших серверов и инструментов.

Рекомендации по безопасности и эксплуатация

  • Никогда не выкладывайте приватный ключ в открытый доступ.
  • Используйте надёжную фразу-пароль для приватного ключа, особенно если ключ хранится на ноутбуке.
  • Ограничьте доступ к файлу приватного ключа: в Linux/WSL chmod 600 ~/.ssh/id_rsa.
  • Для Windows настройте NTFS-права: право читающего только для вашей учётной записи.
  • Периодически ротация ключей: заменяйте ключи при смене сотрудников или компромете.
  • Для доступа из CI используйте выделенные ключи с минимальными правами и храните их в секретном хранилище.
  • По возможности применяйте двухфакторную аутентификацию в сервисах и используйте ключи только как одну из составляющих безопасного доступа.

Безопасность агента: убедитесь, что только вы можете управлять ssh-agent и что он не доступен посторонним процессам.

SOP: быстрый рабочий процесс (Playbook)

  1. Решите тип ключа (Ed25519 по умолчанию; RSA 4096 при необходимости).
  2. Создайте ключ на локальной машине: ssh-keygen -t ed25519.
  3. Сохраните приватный ключ в ~/.ssh/ и задайте фразу-пароль.
  4. Добавьте публичный ключ на удалённый сервер (через authorized_keys или панель сервиса).
  5. Проверьте подключение: ssh user@host.
  6. Добавьте ключ в ssh-agent для удобства.
  7. Документируйте использование ключа: где и кем используется.
  8. Проводите ротацию по расписанию или при риске компромета.

Контроль качества: критерии приёмки

  • SSH-подключение к целевому серверу успешно без ввода пароля (при использовании агента) или с вводом фразы-пароля.
  • Приватный ключ присутствует только в локальном защищённом хранилище и имеет корректные права доступа.
  • Публичный ключ добавлен в ~/.ssh/authorized_keys на целевом сервере и имеет корректные права.
  • Документация о ключе (тип, комментарий, дата создания, владелец) сохранена в защищённом реестре.

Роли и чек-листы

Разработчик:

  • Сгенерировать ключ (Ed25519)
  • Добавить публичный ключ в профиль Git-сервиса
  • Добавить ключ в ssh-agent

Системный администратор:

  • Обеспечить политику прав доступа к ключам
  • [ ] Контролировать authorized_keys на серверах
  • Планировать ротацию ключей

DevOps:

  • Создать отдельные ключи для CI/CD и для личного доступа
  • Хранить приватные ключи в секретном менеджере
  • Минимизировать права ключей на серверах

Часто встречующиеся ошибки и способы их устранения

  • “Permission denied (publickey)”: убедитесь, что публичный ключ корректно скопирован в ~/.ssh/authorized_keys и файлы имеют права 700/600.
  • SSH пытается использовать другой ключ: явно укажите ключ при подключении ssh -i ~/.ssh/id_rsa user@host или настройте ~/.ssh/config.
  • Агент не добавляет ключ: проверьте, что ssh-agent запущен и выполнена команда ssh-add.

Краткий глоссарий

  • Приватный ключ — секретный файл, используемый для аутентификации (не делиться).
  • Публичный ключ — файл, который размещается на сервере; обеспечивает сверку с приватным ключом.
  • ssh-agent — демон, который хранит приватный ключ в памяти и избавляет от постоянного ввода пароля.

Социальный и анонсный текст

OG Title: Создание SSH-ключа в Windows — быстро и безопасно OG Description: Инструкция по генерации SSH-ключей в Windows (Command Prompt и WSL), выбор Ed25519 vs RSA, советы по безопасности.

Анонс (короткий, 100–200 слов): Создание SSH-ключа — базовая операция для безопасной работы с удалёнными серверами и репозиториями. В Windows 11 OpenSSH встроен и позволяет без сторонних инструментов сгенерировать пару ключей. В статье показаны два подхода: через Командную строку и через WSL, приведены команды для Ed25519 и RSA, рассмотрены способы копирования публичного ключа, настройка ssh-agent и важные меры безопасности. Рекомендуется использовать Ed25519 для новых ключей и выбирать RSA 4096 для совместимости с устаревшими системами. Также приведены чек-листы для разработчиков и администраторов и критерии приёмки.

Итог и рекомендации

  • Для новых ключей выбирайте Ed25519: короткий, быстрый и безопасный.
  • Если нужна совместимость с очень старыми системами, используйте RSA 4096.
  • Всегда храните приватный ключ в защищённом месте и применяйте фразу-пароль.
  • Документируйте ключи и управляйте их жизненным циклом (создание — использование — ротация — удаление).

Notes: если у вас возникли специфические требования (смарт-карты, YubiKey, HSM), процесс генерации и хранения может отличаться; обратитесь к документации устройства.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Почему ломаются жёсткие диски и как защитить данные
Hardware

Почему ломаются жёсткие диски и как защитить данные

Как питать Raspberry Pi Pico
Аппаратное обеспечение

Как питать Raspberry Pi Pico

Как создать блог на Tumblr — быстро и просто
Блоги

Как создать блог на Tumblr — быстро и просто

Моддинг Nintendo 3DS для ретро‑игр
Ретро-гейминг

Моддинг Nintendo 3DS для ретро‑игр

Ускорение Microsoft Edge на Windows 10 и 11
Браузеры

Ускорение Microsoft Edge на Windows 10 и 11

Перенос подписок из Google Podcasts — полный гайд
Подкасты

Перенос подписок из Google Podcasts — полный гайд