web-dev-qa-db-ja.com

SSH秘密鍵のファイル形式をすばやく識別する方法は?

今日は Remote Desktop Manager、 によってトリガーされ、そのSSH Key Generatorは秘密鍵をOpenSSH形式で保存することを提案しましたが、その後に進みましたPKCS#1/OpenSSL形式で保存し、同じランダム*.pri提供されている2つの形式のファイル拡張子。

save as

AWS EC2インスタンスに接続したかったのですが、WinSCP、FileZilla、PuTTYはすべて異なる秘密鍵形式を使用しています。

より多くの洞察を提供してください、これは私の現在の不完全な理解です。

1
Reto Höhener

多くの場合、ファイル拡張子はランダムであるか、形式を識別するのに十分ではありません。

大まかな分類:

PEMファイルは Base64-----BEGIN----------END-----の「タグ」で囲みます。また、秘密鍵とSSL証明書(チェーン)の両方を含めるためにも一般的に使用されます。 オンラインASN.1デコーダー を使用して、PEMファイルのBase64コンテンツを確認します。

PEMファイル

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

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

PuTTY Key Generatorはこれを「OpenSSH SSH-2秘密鍵(古いPEM形式)」と呼びます(?)。 [SSLeay]または[traditional]形式。 this answer に従っています。 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証明書(チェーン)も含めることができます。

2
Reto Höhener