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

SSH — это защищённый канал для удалённого управления серверами. Кратко: используйте ключи вместо паролей, чтобы избежать брутфорс-атак и повысить безопасность доступа.
Почему не стоит использовать вход по паролю
Парольные логины уязвимы к подбору и утечкам. SSH-демон (sshd) сам по себе надёжен и редко даёт вектор атаки через баги, но главный риск — слабые пароли администраторов. Даже кажущиеся сложными пароли подвержены перебору.
SSH-ключи — это асимметричная криптография: приватный ключ хранится у вас, публичный — на сервере. Их нельзя «перебрать» обычными методами. Если возможно — отключите вход по паролю в /etc/ssh/sshd_config и разрешите только аутентификацию ключами.
Важно: приватный ключ — только для вас. Никогда не копируйте приватный ключ на сервер.
Проверка наличия OpenSSH в Windows
Откройте Командную строку (Start → Командная строка) и введите:
ssh -VЕсли OpenSSH установлен, вы увидите версию, например ниже.

Если вместо версии получаете «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 или вы делите компьютер.
После успешного создания вы увидите сообщение об успешной генерации и пути к ключам.

Открытие и копирование публичного ключа
Публичный ключ хранится в файле 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Как добавить публичный ключ на сервер вручную (если нет панели провайдера)
- Подключитесь к серверу другим способом или используйте консоль провайдера.
- Убедитесь, что в домашнем каталоге пользователя есть папка .ssh: mkdir -p ~/.ssh && chmod 700 ~/.ssh
- Откройте (или создайте) файл authorized_keys: nano ~/.ssh/authorized_keys
- Вставьте одну строку — ваш публичный ключ — и сохраните.
- Установите права: chmod 600 ~/.ssh/authorized_keys
- Перезапустите 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 и правильно настраивайте права на сервере.
Важно: всегда проверяйте, что у вас есть рабочий вариант подключения перед отключением паролей на сервере.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента