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

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

• 5 min read • DevOps • Обновлено 28 Nov 2025
SSH-ключи в Windows: генерация и использование
SSH-ключи в Windows: генерация и использование

Иллюстрация: создание и использование SSH-ключей в Windows

SSH — это защищённый канал для удалённого управления серверами. Кратко: используйте ключи вместо паролей, чтобы избежать брутфорс-атак и повысить безопасность доступа.

Почему не стоит использовать вход по паролю

Парольные логины уязвимы к подбору и утечкам. SSH-демон (sshd) сам по себе надёжен и редко даёт вектор атаки через баги, но главный риск — слабые пароли администраторов. Даже кажущиеся сложными пароли подвержены перебору.

SSH-ключи — это асимметричная криптография: приватный ключ хранится у вас, публичный — на сервере. Их нельзя «перебрать» обычными методами. Если возможно — отключите вход по паролю в /etc/ssh/sshd_config и разрешите только аутентификацию ключами.

Важно: приватный ключ — только для вас. Никогда не копируйте приватный ключ на сервер.

Проверка наличия OpenSSH в Windows

Откройте Командную строку (Start → Командная строка) и введите:

ssh -V

Если OpenSSH установлен, вы увидите версию, например ниже.

Иллюстрация: вывод версии OpenSSH в Windows Command Prompt

Если вместо версии получаете «command not recognized», установите компонент OpenSSH: в современных Windows это делается через «Параметры» → Приложения → Необязательные компоненты → Добавить компонент → OpenSSH Client.

Генерация пары ключей (публичный + приватный)

Откройте Командную строку и выполните:

ssh-keygen

Вы увидите подсказку “Enter file in which to save the key”. Нажмите Enter, чтобы сохранить ключ в стандартном каталоге (%userprofile%.ssh\id_rsa).

Когда система спросит “Enter passphrase (empty for no passphrase)”:

  • Нажмите Enter для создания незашифрованного ключа (подойдёт, если вы единственный пользователь машины и доверяете её безопасности).
  • Введите сложную фразу-пароль (passphrase) для шифрования приватного ключа. Это обязательно, если ключ будет на USB или вы делите компьютер.

После успешного создания вы увидите сообщение об успешной генерации и пути к ключам.

Иллюстрация: успешная генерация SSH-ключей в Windows

Открытие и копирование публичного ключа

Публичный ключ хранится в файле id_rsa.pub. Откройте его командой (в Командной строке):

notepad %userprofile%\.ssh\id_rsa.pub

Скопируйте содержимое файла и вставьте в ~/.ssh/authorized_keys на сервере (каждая строка — отдельный ключ).

Многие облачные провайдеры (VPS) позволяют добавить публичный ключ через веб-интерфейс при создании инстанса — это самый удобный способ.

Пример входа на сервер

Если приватный ключ находится в стандартном расположении, подключение выполняется просто:

ssh root@203.0.113.1

Если ключ в нестандартном месте, укажите его явно:

ssh -i "D:\keys\mykey" user@203.0.113.1

Как добавить публичный ключ на сервер вручную (если нет панели провайдера)

  1. Подключитесь к серверу другим способом или используйте консоль провайдера.
  2. Убедитесь, что в домашнем каталоге пользователя есть папка .ssh: mkdir -p ~/.ssh && chmod 700 ~/.ssh
  3. Откройте (или создайте) файл authorized_keys: nano ~/.ssh/authorized_keys
  4. Вставьте одну строку — ваш публичный ключ — и сохраните.
  5. Установите права: chmod 600 ~/.ssh/authorized_keys
  6. Перезапустите sshd при необходимости: sudo systemctl restart sshd

Отключение аутентификации по паролю (рекомендация администраторам)

Отредактируйте /etc/ssh/sshd_config и убедитесь, что следующие параметры установлены:

PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes

Затем перезапустите sshd: sudo systemctl restart sshd

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

Безопасное хранение приватного ключа

  • Используйте passphrase для ключа.
  • Храните ключ на зашифрованном накопителе или USB-ключе, который вы носите с собой.
  • Не копируйте приватный ключ на публичные или общие машины.
  • Для автоматизированных задач используйте отдельные ключи с ограниченными правами и, по возможности, специальные средства (например, ssh-agent или HashiCorp Vault).

Альтернативы и интеграции

  • PuTTY: старый и популярный клиент. На новых Windows он не обязателен, но у некоторых админов остались привычные рабочие процессы (например, .ppk формат).
  • Pageant (часть PuTTY) для хранения ключей в памяти.
  • ssh-agent (встроенный в OpenSSH) для управления расшифрованными ключами во время сессии.

Конвертация ключей PuTTY <-> OpenSSH: используйте PuTTYgen для конвертации .ppk и OpenSSH-форматов.

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

Администратор:

  • Сгенерировать ключ с passphrase и хранить приватный ключ в безопасном месте.
  • Добавить публичный ключ в authorized_keys.
  • Проверить разрешения (.ssh 700, authorized_keys 600).
  • Отключить PasswordAuthentication только после проверки доступа по ключу.

Пользователь:

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

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

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

Команды-справочник (cheat sheet)

ssh-keygen                      # сгенерировать новый ключ
ssh-add                         # добавить ключ в агент (если используется)
ssh -i path/to/key user@host     # подключиться с указанием ключа
notepad %userprofile%\.ssh\id_rsa.pub  # открыть публичный ключ в Windows
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys

Когда ключи не подходят / альтернативные подходы

  • Если вам нужен доступ от имени нескольких пользователей на одной машине под строгим аудитом — рассмотрите централизованную систему управления доступом (LDAP, FreeIPA, облачные IAM).
  • Для автоматизации в CI/CD используйте отдельные ключи с минимальными правами или временные учётные данные.

Безопасность и дополнительные рекомендации

  • Регулярно проверяйте authorized_keys на наличие неизвестных ключей.
  • Ведите учёт, какие публичные ключи установлены для каких аккаунтов.
  • По возможности ограничивайте доступ по IP (в firewall или в настройках sshd через Match Address).

Быстрая визуальная инструкция (Mermaid) — решение, каким методом подключаться

flowchart TD
  A[Есть OpenSSH в Windows?] -->|Да| B[Создать ssh-keygen]
  A -->|Нет| C[Установить OpenSSH клиент]
  B --> D{Ключ с passphrase?}
  D -->|Да| E[Хранить безопасно, можно на USB]
  D -->|Нет| F[Хранить локально, рискованно]
  E --> G[Добавить public в authorized_keys]
  F --> G
  G --> H{Можно ли входить по ключу?}
  H -->|Да| I[Отключить PasswordAuthentication]
  H -->|Нет| J[Проверить права и конфигурацию]

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

SSH-ключи на Windows просты в создании и значительно безопаснее паролей. На современных Windows встроен OpenSSH, а ssh-keygen делает основную работу. Храните приватный ключ безопасно, используйте passphrase и правильно настраивайте права на сервере.

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

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

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро