Как быстро определить форматы файлов закрытых ключей SSH?

Запущено сегодня Диспетчером удаленного рабочего стола, чей генератор ключей SSH предлагал сохранить закрытый ключ в формате OpenSSH , но затем продолжил сохранять его в формате PKCS#1/OpenSSL , используя при этом тот же случайный ключ.*.priрасширение файла для двух предлагаемых форматов.

Я просто хотел подключиться к экземпляру AWS EC2, но WinSCP, FileZilla и PuTTY используют разные форматы закрытых ключей.

Не стесняйтесь предлагать больше информации, это всего лишь мое нынешнее неполное понимание.

1 ответ

Расширение файла часто либо случайное, либо недостаточное для идентификации формата.

Широкие категории:

  • Файлы PEM с данными ASN.1 , закодированные с помощью DER
  • Файлы PEM с данными, закодированными в другом формате.
  • Форматы, отличные от PEM

Файлы PEM обертывают Base64 между-----BEGIN-----и-----END-----«теги». Они также обычно используются для хранения как закрытого ключа, так и сертификата SSL (-цепочки). Используйте онлайн-декодер ASN.1 , чтобы проверить содержимое Base64 файла PEM.

PEM-файлы

PKCS#1 /OpenSSL: id_rsa, *.pem, *.der, *.key, ...

-----BEGIN RSA PRIVATE KEY-----

Генератор ключей PuTTY называет это «закрытым ключом OpenSSH SSH-2 (старый формат PEM)» (?). Согласно этому ответу , формат «SSLeay» или «традиционный» . Base64 начинается сMII.... Содержание ASN.1 . .

PKCS#8: *.pem, *.der, *.key, ...

-----BEGIN PRIVATE KEY-----или-----BEGIN ENCRYPTED PRIVATE KEY-----

Base64 незашифрованного варианта начинается сMII...IBADAN. Содержимое ASN.1, в основном PKCS#1 плюс информация о версии. Больше информацииБольше информации .

OpenSSH: *.??? (не знаю, какое будет типичное расширение файла)

-----BEGIN OPENSSH PRIVATE KEY-----

PEM снаружи, но содержимое не соответствует ASN.1. Видимо несколько недокументированный формат .

Файлы, отличные от PEM

Закрытый ключ PuTTY : *.ppk

Контент также содержит удобочитаемые слова, идентифицирующие его как закрытый ключ Putty.

PKCS#12/PFX : *.p12, *.pfx

PFX — это формат Microsoft, позже выпущенный в очищенной форме как PKCS#12. Содержимое является двоичным и может содержать не только закрытый ключ, но и сертификат SSL (-chain).

Другие вопросы по тегам