Как быстро определить форматы файлов закрытых ключей 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).