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). Використовуйте щонайменше 3072 біти для ключів, які мають служити після 2030 року; 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>, готовий до публікації в endpoint JWKS.

Відбитки ключів

Відбиток — це хеш SHA-256 публічного ключа у wire-форматі SSH, закодований у Base64 без доповнення: SHA256:…. Саме його виводить ssh-keygen -lf id_ed25519.pub, показує GitHub біля кожного ключа і показує SSH, коли просить довіритися новому хосту. Порівняння відбитків дозволяє переконатися, що дві копії публічного ключа — це той самий ключ.

Чи безпечно генерувати ключі в браузері?

Ключі створює crypto.subtle.generateKey — вбудована криптографія браузера, яка використовує безпечний генератор випадкових чисел операційної системи, те саме джерело, що й ssh-keygen. Нічого не надсилається мережею: можна відкрити цю сторінку, відключитися від інтернету та генерувати ключі офлайн.

Для ключів, що захищають продакшн-системи, найбезпечніше місце для їх створення — машина, яка ними користуватиметься, з командою ssh-keygen -t ed25519, або апаратний ключ. Цей інструмент чудово підходить для тестових середовищ, ключів розгортання 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 вашого браузера на цій сторінці, і вони існують лише в пам'яті, доки ви їх не завантажите чи не скопіюєте.