Создайте пару SSH- или RSA-ключей без установки программ
Этот генератор создаёт новую пару ключей Ed25519, ECDSA (P-256, P-384, P-521) или RSA (2048, 3072, 4096 бит) с помощью Web Crypto API вашего браузера и выводит её в нужных форматах: закрытый ключ OpenSSH и строку для <code>authorized_keys</code> — точно как их создаёт <code>ssh-keygen</code>; PEM-файлы PKCS#8 и SPKI для OpenSSL, TLS и JWT-библиотек; открытый JWK; и отпечаток <code>SHA256:</code>. Ключи создаются на вашем устройстве, а закрытый ключ никогда не покидает эту страницу.
Как создать пару SSH-ключей
- 1Выберите тип ключа: Ed25519 — современный стандарт для SSH; RSA — для старых серверов и для ключей подписи PEM или JWT.
- 2При желании введите комментарий, обычно
user@host, чтобы потом узнать ключ вauthorized_keys. - 3Нажмите Создать. Скачайте закрытый ключ как
id_ed25519(илиid_rsa,id_ecdsa), а открытый — под тем же именем с.pub. - 4Переместите оба в
~/.ssh/, выполнитеchmod 600 ~/.ssh/id_ed25519и добавьте строку открытого ключа в~/.ssh/authorized_keysна сервере или в настройки SSH-ключей вашего Git-хостинга.
Какой тип ключа выбрать?
- Ed25519
- Компактный (открытый ключ — 68 символов), быстрый и устойчивый к ошибкам реализации. Поддерживается OpenSSH 6.5 и новее, GitHub, GitLab и всеми современными серверами. Лучший выбор для SSH сегодня.
- ECDSA (P-256, P-384, P-521)
- Кривые NIST — нужны там, где их требуют правила соответствия или где Ed25519 не принимается, например в некоторых аппаратных токенах и облачных сервисах ключей.
- RSA
- Самый совместимый вариант, включая очень старые SSH-серверы и многие TLS- и JWT-библиотеки (RS256). Для ключей, которые должны прослужить после 2030 года, используйте не меньше 3072 бит; 2048 — минимум, который ещё считается приемлемым.
Форматы по порядку
- Закрытый ключ OpenSSH
- <code>-----BEGIN OPENSSH PRIVATE KEY-----</code> — формат, который <code>ssh-keygen</code> пишет по умолчанию. Здесь создаётся без шифрования; парольную фразу добавьте потом командой <code>ssh-keygen -p -f id_ed25519</code>.
- Открытый ключ OpenSSH
- Одна строка, <code>ssh-ed25519 AAAA… comment</code>, для <code>authorized_keys</code>, GitHub, GitLab и облачных консолей.
- Закрытый ключ PKCS#8 (PEM)
- <code>-----BEGIN PRIVATE KEY-----</code> — стандартный контейнер, который читают OpenSSL, Java, Node.js, Go и большинство JWT-библиотек для любого типа ключа.
- Открытый ключ SPKI (PEM)
- <code>-----BEGIN PUBLIC KEY-----</code> — форма X.509 SubjectPublicKeyInfo, которая используется для проверки подписей и в настройках проверки JWT.
- JWK
- Открытый ключ в виде JSON (RFC 7517) с отпечатком <code>kid</code>, готовый к публикации в JWKS-эндпоинте.
Отпечатки
Отпечаток — это хеш SHA-256 открытого ключа в формате SSH wire, закодированный в Base64 без выравнивания: SHA256:…. Именно его выводит ssh-keygen -lf id_ed25519.pub, его GitHub показывает рядом с каждым ключом, и его SSH показывает, когда просит доверять новому хосту. Сравнивая отпечатки, можно убедиться, что две копии открытого ключа — один и тот же ключ.
Безопасно ли создавать ключи в браузере?
Ключи создаёт crypto.subtle.generateKey — встроенная криптография браузера, которая берёт случайные данные из защищённого генератора операционной системы, того же источника, что использует ssh-keygen. Ничего не передаётся по сети: можно загрузить страницу, отключиться от интернета и создавать ключи офлайн.
Для ключей, защищающих рабочие системы, самым безопасным местом создания остаётся машина, которая будет их использовать, — через ssh-keygen -t ed25519 — или аппаратный ключ. Этот инструмент идеален для тестовых сред, deploy-ключей CI, ключей подписи JWT и машин без OpenSSH. Чтобы изучить сертификат на основе такого ключа, используйте декодер сертификатов.
Часто задаваемые вопросы
- Как создать SSH-ключ онлайн?
- Выберите Ed25519, введите комментарий, например свою почту, нажмите «Создать» и скачайте закрытый ключ (id_ed25519) и открытый (id_ed25519.pub). Положите оба в ~/.ssh и добавьте строку .pub на сервер или в Git-хостинг.
- Ed25519 лучше, чем RSA?
- Для SSH — да: ключи Ed25519 намного короче, быстрее в работе и дают безопасность, сравнимую с RSA-3072. Выбирайте RSA только для систем без поддержки Ed25519.
- Почему в моём браузере недоступен Ed25519?
- Ed25519 появился в Web Crypto API в Firefox 129, Safari 17 и Chrome 137. В более старом браузере обновите его или выберите ECDSA или RSA.
- Можно ли добавить парольную фразу к закрытому ключу?
- Ключ создаётся без неё. Добавьте её на своём компьютере командой ssh-keygen -p -f ~/.ssh/id_ed25519 — она зашифрует файл на месте.
- Как преобразовать ключ в формат .ppk для PuTTY?
- Откройте PuTTYgen, выберите Load, укажите скачанный закрытый ключ OpenSSH и сохраните его как закрытый ключ. PuTTYgen читает формат OpenSSH напрямую.
- Какой файл кладётся на сервер?
- Только открытый ключ — одна строка из файла .pub, добавленная в ~/.ssh/authorized_keys. Закрытый ключ остаётся на вашем компьютере, и делиться им нельзя.
- Почему SSH пишет, что права на закрытый ключ слишком открыты?
- SSH отказывается использовать закрытые ключи, которые могут читать другие пользователи. Выполните chmod 600 для файла закрытого ключа и chmod 700 для каталога ~/.ssh.
- Ключи отправляются на сервер?
- Нет. Их создаёт Web Crypto API вашего браузера на этой странице, и они существуют только в памяти, пока вы их не скачаете или не скопируете.