Генератор пары SSH-ключей
Генерация пар SSH-ключей (Ed25519, RSA) в формате OpenSSH для безопасной аутентификации на сервере
Ввод
Вывод
Документация
Что такое пара SSH-ключей?
Пара SSH-ключей — это набор из двух криптографических ключей, используемых для аутентификации пользователя на удалённом сервере без пароля. Пара состоит из приватного ключа, хранящегося в секрете на машине пользователя, и публичного ключа, размещённого на удалённом сервере. При подключении сервер предлагает клиенту доказать владение приватным ключом — без передачи самого приватного ключа. Такой асимметричный подход значительно безопаснее аутентификации по паролю, поскольку отсутствует общий секрет, который можно перехватить или подобрать перебором.
Пары SSH-ключей генерируются с использованием алгоритмов криптографии с открытым ключом. Наиболее широко используются Ed25519 — современный алгоритм на эллиптических кривых, известный своим малым размером ключа и высокой безопасностью, и RSA — проверенный временем алгоритм, основанный на сложности факторизации больших целых чисел. Ed25519 рекомендуется для новых ключей благодаря его превосходной производительности и устойчивости к атакам по побочным каналам.
Описание инструмента
Генератор пар SSH-ключей создаёт криптографически стойкие пары SSH-ключей Ed25519 или RSA прямо в вашем браузере, используя Web Crypto API. Никакие данные не отправляются на сервер — весь ключевой материал генерируется локально на вашем устройстве. Вы можете дополнительно добавить комментарий (обычно user@hostname) для идентификации ключа позже. Сгенерированные публичный и приватный ключи можно скопировать в буфер обмена или загрузить как файлы, готовые к использованию с ssh-copy-id или любым SSH-клиентом.
Примеры
Публичный ключ Ed25519
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostnameПубличный ключ RSA (4096-бит)
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostnameПриватный ключ (формат OpenSSH)
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----Возможности
- Поддержка Ed25519 и RSA: Выберите между современным алгоритмом на эллиптических кривых или классическим алгоритмом RSA
- Опции размера ключа RSA: Выберите 2048, 3072 или 4096-битные RSA-ключи для баланса между безопасностью и производительностью
- Опциональное поле комментария: Добавьте комментарий в стиле
user@hostnameдля идентификации ключа на разных машинах - Генерация на стороне клиента: Ключи генерируются полностью в вашем браузере с использованием Web Crypto API — ничего не передаётся и не сохраняется
- Загрузка в один клик: Сохраняйте файлы публичного и приватного ключей напрямую с правильными именами файлов (
id_ed25519,id_ed25519.pub,id_rsa,id_rsa.pub)
Варианты использования
- Настройка доступа к серверу: Сгенерируйте пару ключей один раз и разместите публичный ключ на любом количестве удалённых серверов Linux/Unix через
~/.ssh/authorized_keysдля включения входа по SSH без пароля - Аутентификация в хостингах Git: Добавьте публичный ключ на GitHub, GitLab или Bitbucket для аутентификации операций
git pushиgit pullбез ввода учётных данных каждый раз - Конвейеры CI/CD: Создайте выделенную пару ключей развёртывания для автоматизированных скриптов или агентов сборки, которым требуется доступ по SSH к серверам или приватным репозиториям
Как это работает
Генерация ключей использует встроенный API crypto.subtle браузера (Web Crypto). Для Ed25519 сырые 32-байтовый приватный скаляр и 32-байтовый публичный ключ упаковываются в формат SSH wire (openssh-key-v1). Для RSA ключ экспортируется в формат PKCS#8 DER и обёртывается в стандартный конверт PEM. Публичный ключ кодируется в формате SSH wire (имя алгоритма с префиксом длины, за которым следует материал ключа) и кодируется в Base64, соответствуя формату, ожидаемому файлом authorized_keys OpenSSH.
Советы
- После загрузки установите правильные разрешения на файл приватного ключа:
chmod 600 ~/.ssh/id_ed25519. SSH откажется использовать приватный ключ, доступный для чтения другими пользователями. - Используйте Ed25519, если вам не требуется совместимость со старыми системами, которые его не поддерживают. Он создаёт более короткие ключи и быстрее, чем RSA.
- Поле комментария не влияет на криптографическую стойкость ключа — оно предназначено исключительно для идентификации человеком и может быть изменено позже с помощью
ssh-keygen -c. - Для максимальной совместимости RSA со старыми серверами используйте 4096-битные ключи. Для современных серверов Ed25519 предпочтителен независимо от размера ключа RSA.