web-dev-qa-db-ja.com

Amazon EC2キーペアの回復

Amazon EC2で実行中のインスタンスにアクセスする方法を知る必要があります。

  • 元のキーペア「.pem」ファイルがありません
  • AWS管理コンソールにアクセスできます
  • 終了/再起動は実行できません

私が見つけた私の質問に最も近いものは this でしたが、それから状況が変わったことを望みます。

そのpemファイルをダウンロードしたり、新しいキーペアを割り当てる方法はありますか?

64
Joaquin Brenner

キーペアは、おそらくセキュリティ上の理由から、Amazonから1回しかダウンロードできません。できることは、Elastic IPの1つをインスタンスに割り当て、通常通りにトラフィックをルーティングすることです。インスタンスのスナップショットを作成し、新しいキーペアで複製を作成します。 Elastic IPを新しいインスタンスに切り替えます。これは特にエレガントではありませんが、完全なシャットダウンよりもダウンタイムがはるかに短くなります。

注:Elastic IPをインスタンスに割り当てると、現在のパブリックIPがオーバーライドされるため、DNSも更新する必要があります。

53
agross

実際には、インスタンスを停止し、ルートパーティション(通常は/ dev/sda1)をデタッチして別のインスタンスにアタッチする場合にのみ、新しいキーペアをインスタンスに割り当てることができます。そうすると、/home/ubuntu/.ssh/authorized_keysにアクセスできるようになります。コマンドラインから新しい.pemキーを生成し、そのファイルに貼り付けることができます。次に、そのパーティションをデタッチし、元のインスタンスに再アタッチします。新しく生成されたキーを使用して接続します。

これらの手順の詳細については、Googleまたはこちらをご覧ください。 http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html

10

AMIの今後のセットアップ時に、cloud-initをセットアップします。ブート時に、これはユーザーデータをプルダウンし、それに応じて処理します。したがって、AMIが停止している間に、次のようなものをユーザーデータボックスに挿入できます。

mkdir -p /root/.ssh/

cat > /root/.ssh/keyname.pub <<EOF_PUB
ssh-rsa yourkeydata== keyname@wherever
EOF_PUB

cat /root/.ssh/keyname.pub >> /root/.ssh/authorized_keys;

ただし、cloud-initパッケージがインストールされておらず実行されていない場合、これは効果がありません。キーを保存していない開発者からロックアウトされたAMIを回復する必要が何度かありました。これは天の恵みです。

4
user1252959