ssh-keygenを使用してキーペアを作成し、2つの古典的なid_rsaとid_rsa.pubを取得しました。

AWSEC2アカウントに公開鍵をインポートしました。

Windowsインスタンスを作成し、そのインスタンスパスワードを復号化するために、AWSコンソールから.pemファイルの入力を求められました。2つのid_rsaファイルとid_rsa.pubファイルからその.pemファイルを取得するにはどうすればよいですか?

answer

よると、この、このコマンドを使用することができます:

ssh-keygen -f id_rsa -e -m pem

これにより、公開鍵がOpenSSL互換形式に変換されますあなたのプライベート鍵は、PEM形式で既にあると(マイケル・ハンプトンが述べたように)であるとして使用することができます。

AWSがPEM形式の(X.509)証明書を要求していないかどうかを再確認します。これは、SSHキーとは異なります。

ssh-keygenキーを.pem形式でエクスポートするために使用することは私のために働きました。

ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pem

次に.pem、必要に応じキーをコピーするだけです。

参考のために:

  • -f id_rsa.pub部分は、から読み取る入力ファイルを示し
  • -m 'PEM PEMファイルタイプを示します
  • この-eオプションは、出力がエクスポートされることを示します

当初、を使用するとssh-keygen、AWS EC2と互換性のある公開鍵を生成できましたが、互換性のある秘密鍵の作成に問題がありました。以下は、AWSEC2と互換性のある公開鍵と秘密鍵の両方のペアを作成します。

ssh-keygen -P "" -t rsa -b 4096 -m pem -f my-key-pair

各パラメータに関する情報は次のとおりです。

  • -P:パスフレーズ用です。意図的に空に設定します。
  • -t:作成するキーのタイプを指定します。AWSEC2キーペアにはRSAが必要です。これが作成される公開鍵に関係するのは私の経験です。
  • -b:キーのビット数を指定します。サポートされている長さは1024、2048、および4096です。EC2InstanceConnectAPIの使用中にSSHを使用して接続する場合、サポートされている長さは2048および4096です。
  • -m:鍵生成の鍵フォーマットを指定します。サポートされている秘密鍵タイプを生成するときに「PEM」の形式を設定すると、鍵は従来のPEM秘密鍵形式で保存されます。AWSEC2キーペアにはレガシーフォーマットが必要です
  • -f:キーファイルの出力ファイル名を指定します

資力:

ssh-keygenの詳細については、https://man.openbsd.org/ssh-keygen.1を参照して ください。

AWS-EC2キーペア-https  ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

id_rsa は、Windows EC2インスタンスのパスワードを復号化するために使用する必要のあるファイルですが、コピーして貼り付けるファイルがフレーズで保護されていないことを確認してください。

id_rsa次のような方法で、一時的に保護されていないファイルを取得する問題を解決しました

$ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem

EC2インスタンスを起動するときに、キーペアを割り当てます(または割り当てません)。後で変更することはできません。

そのキーペアからのその.pemファイルを使用することによってのみ、Windowsパスワードを復号化できます。

.pemファイルは、キーペアが作成されたときにダウンロードされていたはずです。二度と手に入れることはできません。あなたがそれを失った場合、あなたは運が悪いです。

インスタンスが起動されてインスタンスに割り当てられる前にそのキーをAWSにインポートしない限り、自分で生成した.pemファイルを使用することはできません。

簡単に言うと、元の.pemファイルがないと、パスワードを取得できません。

編集:質問を読み直した後、OPが彼のキーをAWSにインポートしたことに気付きました。