Анализатор SSH-ключей
Разбор и анализ публичных SSH-ключей. Извлечение типа ключа, алгоритма, размера ключа, отпечатков (SHA-256, MD5) и комментариев из публичных ключей OpenSSH.
Ввод
Вывод
Документация
Что такое публичный SSH-ключ?
Публичный SSH-ключ — это одна из двух частей криптографической пары ключей, используемой для безопасной аутентификации по протоколу SSH (Secure Shell). При генерации пары SSH-ключей вы получаете приватный ключ (хранится в тайне на вашем устройстве) и публичный ключ (передаётся серверам, к которым вы хотите получить доступ). Сервер использует ваш публичный ключ для проверки вашей личности без передачи пароля.
Публичные SSH-ключи хранятся в виде одной строки текста в формате OpenSSH и содержат три части: тип ключа (например, ssh-rsa или ssh-ed25519), данные ключа в кодировке Base64 и необязательный комментарий (обычно user@hostname). Внутри данных Base64 содержится структурированная бинарная информация, включающая параметры алгоритма и непосредственно криптографический материал.
Отпечатки (fingerprints) — это короткие, удобочитаемые хэши данных ключа. Они позволяют легко проверять и сравнивать ключи без необходимости читать полную строку Base64. Два наиболее распространённых формата отпечатков — SHA-256 (современный стандарт по умолчанию) и MD5 (устаревший формат с парами шестнадцатеричных символов, разделённых двоеточиями).
Описание инструмента
Этот инструмент разбирает публичные SSH-ключи в формате OpenSSH и извлекает все важные метаданные. Вставьте ваш публичный ключ и мгновенно получите тип ключа, алгоритм, размер ключа в битах, комментарий, а также отпечатки SHA-256 и MD5 — результат совпадает с выводом команды ssh-keygen -l.
Примеры
Входные данные:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptopРезультат:
| Поле | Значение |
|---|---|
| Тип ключа | ssh-ed25519 |
| Алгоритм | Ed25519 |
| Размер ключа | 256 бит |
| Комментарий | user@laptop |
| Отпечаток SHA-256 | SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 |
| Отпечаток MD5 | MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 |
Возможности
- Поддержка типов ключей RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA и Security Key (FIDO)
- Вычисление отпечатков SHA-256 и MD5 в стандартном формате OpenSSH
- Извлечение размера ключа в битах непосредственно из бинарных данных ключа
- Проверка структуры ключа, включая целостность Base64 и согласованность встроенного типа
- Разбор необязательного поля комментария из строки публичного ключа
Принцип работы
Инструмент разбивает входные данные на три части: тип ключа, данные Base64 и комментарий. Затем декодирует данные Base64 в бинарный формат и считывает внутреннюю структуру, используя SSH-формат с префиксом длины, где каждое поле начинается с 4-байтовой длины в формате big-endian, за которой следуют данные поля. Размер ключа определяется на основе параметров, специфичных для алгоритма: для RSA — это битовая длина модуля n, для DSA — простое число p, а для ключей на эллиптических кривых — из названия кривой. Отпечатки вычисляются путём хэширования необработанных бинарных данных ключа с помощью SHA-256 и MD5.
Поддерживаемые типы ключей
| Идентификатор типа | Алгоритм |
|---|---|
ssh-rsa |
RSA |
ssh-ed25519 |
Ed25519 |
ecdsa-sha2-nistp256 |
ECDSA (P-256) |
ecdsa-sha2-nistp384 |
ECDSA (P-384) |
ecdsa-sha2-nistp521 |
ECDSA (P-521) |
ssh-dss |
DSA |
sk-ssh-ed25519@openssh.com |
Ed25519-SK (Security Key) |
sk-ecdsa-sha2-nistp256@openssh.com |
ECDSA-SK (Security Key) |
Сценарии использования
- Проверка отпечатков ключей — убедитесь, что публичный ключ соответствует ожидаемому отпечатку перед добавлением его в
authorized_keysили сервис хостинга Git - Аудит доступа к серверу — быстро определите алгоритм и размер ключей в файле
authorized_keys, чтобы выявить слабые или устаревшие ключи - Отладка проблем SSH — проверьте, имеет ли ключ правильный формат, использует ли ожидаемый алгоритм и обладает ли корректной структурой
Часто задаваемые вопросы
Где найти мой публичный SSH-ключ?
На большинстве систем он хранится по пути ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub или аналогичному, в зависимости от алгоритма. Также можно выполнить команду ssh-add -L, чтобы вывести список ключей, загруженных в SSH-агент.
Безопасно ли передавать публичный ключ? Да. Публичный ключ предназначен для передачи другим. Он не может быть использован для получения приватного ключа или аутентификации от вашего имени.
Почему отпечатки SHA-256 и MD5 выглядят по-разному?
Отпечатки SHA-256 кодируются в Base64 и имеют префикс SHA256:, тогда как отпечатки MD5 используют шестнадцатеричные пары, разделённые двоеточиями, с префиксом MD5:. SHA-256 является стандартным форматом в современных версиях OpenSSH.