質問: ssh秘密鍵のファイル形式をすばやく識別する方法は? 今日は remote desktop manager、 によってトリガーされ、そのssh key generatorは秘密鍵をopenssh形式で保存することを提案しましたが、その後に進みましたpkcs#1/openssl形式で保存し、同じランダム*.pri提供されている2つの形式のファイル拡張子。 aws ec2インスタンスに接続したかったのですが、winscp、filezilla、puttyはすべて異なる秘密鍵形式を使用しています。より多くの洞察を提供してください、これは私の現在の不完全な理解です。
回答: 多くの場合、ファイル拡張子はランダムであるか、形式を識別するのに十分ではありません。大まかな分類: [〜#〜] pem [〜#〜] ファイル asn.1 データ、 [〜 #〜] der [〜#〜] 他の形式でエンコードされたデータを含むpemファイル 非pemフォーマット 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、*。pfxpfxはmicrosoft形式であり、後でpkcs#12としてクリーンアップされた形式でリリースされます。コンテンツはバイナリであり、秘密鍵だけでなくssl証明書(チェーン)も含めることができます。