Pack Camo

Генератор пар ключей RSA и SSH

Пары ключей RSA, ECDSA и Ed25519 в форматах PEM и OpenSSH, созданные на вашем устройстве.

Всё выполняется локально — ничего не отправляется на сервер.

Создаём пару ключей…

Создайте пару 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. 1Выберите тип ключа: Ed25519 — современный стандарт для SSH; RSA — для старых серверов и для ключей подписи PEM или JWT.
  2. 2При желании введите комментарий, обычно user@host, чтобы потом узнать ключ в authorized_keys.
  3. 3Нажмите Создать. Скачайте закрытый ключ как id_ed25519 (или id_rsa, id_ecdsa), а открытый — под тем же именем с .pub.
  4. 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 вашего браузера на этой странице, и они существуют только в памяти, пока вы их не скачаете или не скопируете.