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


10

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

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

回答:


26

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

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

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

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

  1. 新しい一時インスタンスを開始します。server-02と呼びます。
  2. server-01を停止します。終わらせないで、止めてください。
  3. ルート(/)EBSボリュームをserver-01から接続解除し、次のように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でログインできるはずです。

2
この優れた答えに追加するために、コマンドラインから実行する手順を説明するこのブログ投稿を見つけました。alestic.com/2011/02/ec2-fix-ebs-root
Eric

1

誰もがEEAAの答えを試す前のヒント、

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

EC2インスタンスは、EC2ダッシュボードまたは aws-cli


うーん、ここに誤って投稿された別の質問への回答のようです。この質問ではファイアウォール/ iptablesについては何もありません。
kubanczyk

悪いことに、この答えは、すべてのIPアドレスがブロックされている場合に、サーバーへのすべてのトラフィックがブロックされるときのためのものです。削除する必要があるかどうかをお知らせください。
retr0
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.