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

Как создать SSH-ключи в Windows 10 и 11

7 min read DevOps Обновлено 21 Dec 2025
SSH-ключи в Windows 10/11 — генерация и управление
SSH-ключи в Windows 10/11 — генерация и управление

TL;DR

Генерация SSH-ключей в Windows 10/11 проста: можно использовать встроенный ssh-keygen в Командной строке/PowerShell/Windows Terminal, Windows Subsystem for Linux (WSL) или PuTTY (puttygen). Для каждого сервиса удобно создавать отдельный ключ и управлять ими через ssh-agent и файл конфигурации ~/.ssh/config. Всегда сохраняйте приватный ключ в безопасном месте, используйте сложную фразу-пароль и делайте резервные копии перед переносом на новый ПК.


Экран ноутбука с подключением по SSH

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

  • Вариант 1: Генерация ключей через командную строку
  • Вариант 2: Генерация ключей в WSL (Windows Subsystem for Linux)
  • Вариант 3: Генерация ключей с PuTTY

Краткое содержание

  • В Windows 10 (с обновления апреля 2018) и в Windows 11 встроен клиент OpenSSH: команда ssh-keygen создаёт ключи.
  • Альтернативные методы: генерировать в WSL (если вы предпочитаете Linux-окружение) или использовать PuTTY/puttygen для создания и экспорта PPK/OpenSSH-ключей.
  • Для разных сервисов (GitHub, DigitalOcean, VPS и т. п.) удобно заводить разные ключи и настраивать ~/.ssh/config, чтобы не путаться.

Введение

Если вы подключаетесь к удалённому серверу, пушите в Git, работаете с облачными VPS или управляете Nextcloud/собственным сайтом — SSH-ключи обязательны. В Windows варианты генерации ключей гибкие: от встроенного OpenSSH до классического PuTTY. Ниже изложены три подхода с практическими советами по безопасности, переносу ключей и решению типичных проблем.

Вариант 1: Генерация ключей в командной строке (Command Prompt / PowerShell / Windows Terminal)

Windows 10 и 11 содержат клиент OpenSSH. Откройте Командную строку (Win → введите “cmd”), PowerShell или Windows Terminal и выполните команду:

ssh-keygen

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

C:\Users\<ИмяПользователя>\.ssh\id_rsa
C:\Users\<ИмяПользователя>\.ssh\id_rsa.pub

Если вы хотите конкретный алгоритм и длину ключа, укажите параметры, например RSA 4096 или Ed25519:

ssh-keygen -t rsa -b 4096
ssh-keygen -t ed25519 -C "you@example.com"

Пояснения:

  • -t задаёт тип ключа (rsa, ed25519 и др.).
  • -b указывает битность (только для RSA).
  • -C добавляет комментарий/идентификатор (обычно email).

Советы по шагам:

  1. При запросе имени файла введите кастомное имя, если хотите второй ключ: например id_rsa_github.
  2. Всегда используйте фразу-пароль (passphrase). Она защищает приватный ключ, если кто-то получит файл.
  3. После генерации публичный ключ (.pub) загружайте на сервер или в сервис (GitHub, GitLab, Bitbucket, панель VPS).
  4. Приватный ключ держите вне доступа: права должны быть ограничены.

Пример: сохранить второй ключ для GitHub

ssh-keygen -t ed25519 -C "me@work" -f C:\Users\me\.ssh\id_ed25519_github

Файлы: id_ed25519_github и id_ed25519_github.pub

Важно: если вы не видите папку .ssh в Проводнике, включите отображение скрытых файлов или выполните в PowerShell:

Get-ChildItem -Force C:\Users\<ИмяПользователя> | Where-Object { $_.Name -eq ".ssh" }

Вариант 2: Генерация ключей в WSL (Ubuntu, Debian и др.)

Терминал WSL Ubuntu с созданием SSH-ключа

WSL — удобный выбор, если вы работаете в Linux-окружении. Команды и поведение идентичны Linux:

ssh-keygen -t rsa -b 4096
ssh-keygen -t ed25519 -C "your@email.address"

Отличия и советы:

  • Путь к файлам в WSL: ~/.ssh (например /home/username/.ssh). Если вы хотите, чтобы ключи были доступны из Windows, можно разместить их на общей файловой системе, но это требует аккуратности с правами доступа.
  • WSL менее интегрирован с Windows-агентом по умолчанию; используйте ssh-agent внутри WSL или настройте пересылку агента.

Пример команды для создания ключа и добавления в агент (WSL):

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

Если вы используете VS Code Remote — хранение ключей в WSL упрощает работу, так как расширение подхватит локальные ключи без лишних конвертаций.

Вариант 3: Генерация ключей с помощью PuTTY (puttygen)

PuTTY и вспомогательные программы в меню Пуск

PuTTY остаётся популярным у пользователей Windows. В комплекте есть PuTTYgen (генератор ключей).

Шаги:

  1. Запустите puttygen (Win → введите “puttygen”).
  2. Внизу окна выберите тип ключа: RSA или EdDSA (Ed25519).
  3. Для RSA укажите “Number Of Bits In A Generated Key” = 4096.
  4. Нажмите Generate и — если требуется — двигайте мышь по окну для генерации энтропии.
  5. Нажмите Save public key для сохранения .pub.
  6. По умолчанию PuTTY сохраняет приватный ключ в формате PPK. Чтобы получить OpenSSH-ключ: Conversions → Export OpenSSH key и сохраните без расширения (id_rsa или id_ed25519).

Кнопка

Опция экспорта OpenSSH-ключа в PuTTY

Примечание: если вы используете PuTTY для подключения к серверам, PPK удобен. Для стандартных инструментов (git, scp, rsync) предпочтительнее OpenSSH-формат — экспортируйте ключ как OpenSSH.

Управление несколькими ключами и конфигурация ssh

Когда у вас несколько ключей (рабочий, личный, ключ для CI), используйте файл конфигурации ssh (~/.ssh/config) чтобы указать какой ключ использовать для какого хоста. Пример:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github
  IdentitiesOnly yes

Host myserver
  HostName 203.0.113.42
  User ubuntu
  IdentityFile ~/.ssh/id_rsa_digitalocean

Пояснение:

  • IdentityFile указывает приватный ключ для подключения.
  • IdentitiesOnly yes заставляет клиент использовать только указанные ключи (полезно при множестве ключей).

Если вы используете Windows OpenSSH, путь в конфиге может быть абсолютным, например:

IdentityFile C:\Users\me\.ssh\id_rsa_github

Использование ssh-agent и менеджмент ключей

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

В Windows (PowerShell):

# Запустить сервис агента
Start-Service ssh-agent
# Добавить ключ (потребуется ввести passphrase один раз)
ssh-add C:\Users\me\.ssh\id_ed25519

В WSL:

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

Совет: настройте автозапуск ssh-agent при входе в систему, если считаете компьютер безопасным. Для ноутбуков вне дома это повышает риск — выбирайте с осторожностью.

Перенос ключей на новый ПК и резервное копирование

Рекомендации:

  • Скопируйте приватный ключ (и файлы конфигурации) в зашифрованный контейнер или на внешний носитель, затем перенесите.
  • Не пересылайте приватный ключ по незашифрованным каналам (email, незашифрованный облачный диск без шифрования).
  • Проверьте права доступа: приватный ключ должен быть доступен только владельцу. В Windows можно использовать icacls:
icacls C:\Users\me\.ssh\id_rsa /inheritance:r /grant:r "%USERNAME%:(R,W)"

(Команда примерная — убедитесь, что права соответствуют вашей политике безопасности.)

Как добавлять публичный ключ на GitHub / GitLab / VPS

  • GitHub: Settings → SSH and GPG keys → New SSH key → вставьте содержимое id_ed25519.pub, дайте имя (например “Work laptop”).
  • DigitalOcean / VPS: добавьте публичную строку в ~/.ssh/authorized_keys на сервере.

Пример команды для копирования ключа на сервер (если доступно по паролю):

ssh-copy-id -i ~/.ssh/id_rsa.pub user@server.example.com

Если ssh-copy-id недоступен в Windows, откройте server: ~/.ssh/authorized_keys и добавьте содержимое .pub вручную.

Сравнение алгоритмов (кратко)

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

Практическое правило: для новых ключей используйте Ed25519, если сервис поддерживает его.

Решение проблем (troubleshooting)

Проблема: “Permission denied (publickey)”

  • Проверьте, что публичный ключ добавлен в authorized_keys на сервере.
  • Убедитесь, что права на ~/.ssh и ~/.ssh/authorized_keys на сервере корректны (700 для ~/.ssh, 600 для authorized_keys).
  • Запустите ssh с подробным логом: ssh -vvv user@host и изучите, какие ключи пробуются.

Проблема: ключ не используется, когда есть много ключей

  • Добавьте IdentitiesOnly yes в ~/.ssh/config для соответствующего хоста и укажите IdentityFile.

Проблема: PuTTY не принимает OpenSSH-ключ

  • Экспортируйте приватный ключ в формате PPK через puttygen или наоборот: PuTTY → Conversions → Import key.

Пример плейбука / SOP для создания ключа и добавления в GitHub (шаги)

  1. Откройте Windows Terminal / PowerShell.
  2. Создайте ключ Ed25519: ssh-keygen -t ed25519 -C “you@domain” -f C:\Users\me.ssh\id_ed25519_github
  3. Введите сложную фразу-пароль и запомните/сохраните её в менеджере паролей.
  4. Запустите ssh-agent и добавьте ключ: ssh-add C:\Users\me.ssh\id_ed25519_github
  5. Скопируйте содержимое id_ed25519_github.pub и вставьте в GitHub → Settings → SSH and GPG keys.
  6. Проверьте подключение: ssh -T git@github.com

Критерии приёмки

  • Команда ssh -T git@github.com возвращает успех (или сообщение приветствия GitHub).
  • Приватный ключ сохранён и защищён фразой-паролем.
  • Файл конфигурации (если нужен) настроен и протестирован.

Чек-лист по ролям

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

  • Создал ключ Ed25519 для работы.
  • Добавил публичный ключ в GitHub/GitLab.
  • Настроил ~/.ssh/config для удобного доступа.

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

  • Настроил права на ~/.ssh и authorized_keys на серверах.
  • Подготовил инструкцию для сотрудников по резервному копированию ключей.
  • Проверил политику ротации ключей и отзыв доступа при увольнении.

Краткий словарь (1 строка)

SSH-ключи: пара криптографических ключей (приватный + публичный) для аутентификации на удалённых серверах без пароля.

Ментальная модель и когда это не сработает

Ментальная модель: публичный ключ — это «замок» на сервере, приватный ключ — ваш «ключ». Сервер открывает дверь, если ключ подходит к замку.

Когда это не подходит:

  • Если у вас нет доступа к панели управления сервера или к аккаунту (нельзя загрузить публичный ключ).
  • Если политика безопасности организации запрещает использование личных ключей без централизованного управления.

Простая диаграмма принятия решения

flowchart TD
  A[Нужен доступ по SSH?] -->|Да| B{Установлен OpenSSH на Windows?}
  B -->|Да| C[Использовать ssh-keygen]
  B -->|Нет| D{Используете PuTTY?}
  D -->|Да| E[Использовать puttygen + экспорт OpenSSH]
  D -->|Нет| F[Установить Windows Terminal или WSL и использовать ssh-keygen]
  A -->|Нет| G[SSH не нужен]

Безопасность и GDPR / приватность

  • Приватные ключи не содержат персональных данных, но доступ к системам может раскрыть информацию — храните приватные ключи надёжно.
  • При совместном использовании рабочих ресурсов следуйте корпоративной политике по хранению и ротации ключей.

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

Генерировать SSH-ключи в Windows просто: используйте ssh-keygen в Command Prompt/PowerShell/Windows Terminal, WSL для Linux-ориентированных сред или PuTTY при приверженности к этому инструменту. Создавайте разные ключи для разных сервисов, храните приватные ключи в безопасном месте, используйте ssh-agent и ~/.ssh/config для удобства и безопасности. Резервное копирование и контроль прав доступа помогут избежать потери доступа при смене устройства.

Важно

  • Всегда делайте резервную копию приватного ключа в зашифрованном виде.
  • Не публикуйте приватный ключ и не отправляйте его по незашифрованным каналам.

Ключевые команды для быстрого копирования:

# Создать Ed25519 (Windows/WSL)
ssh-keygen -t ed25519 -C "you@example.com"

# Создать RSA 4096
ssh-keygen -t rsa -b 4096

# Добавить ключ в агент (Windows)
Start-Service ssh-agent
ssh-add C:\Users\me\.ssh\id_ed25519

# Проверить подключение к GitHub
ssh -T git@github.com
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство