web-dev-qa-db-ja.com

インスタンス作成時の.pemファイルがない場合、Amazon EC2サーバーインスタンスにSSHで接続できますか?

稼働中のいくつかのAmazon EC2サーバーで作業しており、サーバーにSSH接続する必要があります。サーバーが最初にセットアップされたときに生成されたキーはありません(他の誰かがここに来る前に作成しました)。キーファイルがなくてもサーバーにアクセスできますか?

FWIWこれまでに、EC2ダッシュボードで新しいキーペアを生成するなど、SSHを使用してさまざまなことをボックスに試しましたが、何も機能しないようです。 このAmazon AWSサポートの投稿この答え は、現在のサーバーのAMIを作成し、それを使用してインスタンス化する場合を除き、運が悪いことを示しているようですまったく新しいEC2サーバーインスタンス(その時点で生成された.pemファイルを取得するためだけ)。これが、現時点でボックスに入る唯一の方法ですか?

10
Eric

簡単に言うと、はい、できますが、いくつかの作業なしではできません。

次のことを行う必要があります。

(これらの手順では、接続に問題のあるマシンがserver-01であると想定しています。)

まず、これらの手順を開始する前に、サーバーのスナップショットを撮ります。

  1. 新しい一時インスタンスを開始します。 server-02と呼びます。
  2. Server-01を停止します。 終了せず、停止するだけです。
  3. ルートのアタッチを解除します(/)server-01のEBSボリュームをserver-02に接続します。たとえば、/dev/sdb
  4. Server-02にサインインし、次を実行します:$ mkdir /mnt/temp && mount /dev/sdb /mnt/temp。これにより、server-01のルートパーティションが(一時的な)server-02内にマウントされます。
  5. これで、次のことができるようになります。$ vi /home/<user>/.ssh/authorized_keysそして公開鍵をコピーして貼り付けます。それが終わったら、ファイルを保存して閉じます。
  6. 今すぐ実行:$ cd / && umount /mnt/temp server-02からserver-01のルートパーティションをアンマウントします。
  7. ここで、そのボリュームをserver-02から接続解除し、server-01に接続し直してから、server-01を起動します。起動すると、再びSSHで接続できるはずです。
26
EEAA

誰かが試みる前のちょっとしたヒント [〜#〜] eeaa [〜#〜] の答え、

iptables saveまたはiptables-saveコマンドを実行して設定を保存していない場合は、サーバーを再起動してください。 AskUbunt でこの回答を引用すると、構成ファイルに明示的に保存しない限り、iptablesが構成をRAM自体に保存することを学びました。

EC2インスタンスはEC2ダッシュボードまたはaws-cliから簡単に再起動できます

0
retr0