500

AWS マネジメントコンソールで ec2 インスタンスのキーペアを変更するにはどうすればよいですか? インスタンスを停止し、新しいキー ペアを作成できますが、インスタンスのキー ペアを変更するためのリンクが表示されません。

4

23 に答える 23

576

この回答は、既存のサーバーへのSSHアクセスがなくなった場合(つまり、秘密鍵を紛失した場合)に役立ちます。

それでもSSHアクセスがある場合は、以下のいずれかの回答を使用してください。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Eric Hammondのブログ投稿のおかげで、これが私がしたことです。

  1. 実行中のEC2インスタンスを停止します
  2. ボリュームを切り離します/dev/xvda1(ボリュームAと呼びましょう)-ここを参照してください
  3. 新しいキーペアを使用して、新しいt1.microEC2インスタンスを起動します。必ず同じサブネットに作成してください。そうしないと、インスタンスを終了して再度作成する必要があります。-ここを参照してください
  4. /dev/xvdf(または/dev/sdf)として、ボリュームAを新しいマイクロインスタンスにアタッチします
  5. 新しいマイクロインスタンスにSSHで接続し、ボリュームAをにマウントします/mnt/tmp
$ sudo mkdir /mnt/tmp; sudo mount /dev/xvdf1 /mnt/tmp
  1. ~/.ssh/authorized_keysにコピー/mnt/tmp/home/ubuntu/.ssh/authorized_keys
  2. ログアウト
  3. マイクロインスタンスを終了します
  4. ボリュームAを切り離します
  5. ボリュームAをメインインスタンスに接続します。/dev/xvda
  6. メインインスタンスを開始します
  7. .pem新しいファイルを使用して、以前と同じようにログインします

それでおしまい。

于 2012-08-02T11:07:38.050 に答える
207

インスタンスが開始されると、インスタンスに関連付けられたキーペアをメタデータ レベルで変更する方法はありませんが、インスタンスへの接続に使用する ssh キーを変更することはできます。

ほとんどの AMI には、公開 ssh キーをダウンロードして .ssh/authorized_keys ファイルにインストールする起動プロセスがあり、対応する秘密 ssh キーを使用してそのユーザーとして SSH 接続できます。

インスタンスへのアクセスに使用する ssh キーを変更する場合は、インスタンス自体のauthorized_keys ファイルを編集して、新しい ssh 公開キーに変換する必要があります。

authorized_keys ファイルは、ログインしているユーザーのホーム ディレクトリの下の .ssh サブディレクトリにあります。実行している AMI に応じて、次のいずれかにある可能性があります。

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

authorized_keys ファイルを編集した後は、ファイルの編集に使用しているセッションから切断する前に、必ず別の端末を使用してインスタンスに SSH 接続できることを確認してください。間違いを犯して、インスタンスから完全に締め出されたくはありません。

EC2 での ssh キーペアについて考えている間は、Amazon にキーペアを生成させるのではなく、独自の個人用 ssh 公開キーを EC2 にアップロードすることをお勧めします。

これについて私が書いた記事は次のとおりです。

個人の ssh キーを Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keysにアップロードする

これは、実行する新しいインスタンスにのみ適用されます。

于 2011-10-24T21:05:10.313 に答える
92

AWS pem をダウンロードした後、このコマンドを実行します。

ssh-keygen -f YOURKEY.pem -y

次に、出力を にダンプしますauthorized_keys

または、pem ファイルを AWS インスタンスにコピーし、次のコマンドを実行します。

chmod 600 YOURKEY.pem

その後

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
于 2014-09-17T16:25:31.083 に答える
16

最も簡単なアプローチは次のとおりだと思います。

  1. 既存のインスタンスの AMI イメージを作成します。
  2. 新しいキーペアで AMI イメージ (ステップ 1 で作成) を使用して、新しい EC2 インスタンスを起動します。
  3. 新しいキーで新しい EC2 インスタンスにログインします。
于 2016-07-04T08:43:23.640 に答える
16

以下の手順に従うと、多くの時間を節約でき、実行中のインスタンスを停止する必要がなくなります。

  1. 新しいキー ペアを使用して、新しい t1.micro EC2 インスタンスを開始します。必ず同じサブネット内に作成してください。そうしないと、インスタンスを終了して再度作成する必要があります。
  2. 新しいマイクロ インスタンスに SSH で接続し、 ~/.ssh/authorized_keysの内容をコンピューターのどこかにコピーします。
  3. 古い ssh keyを使用してメイン インスタンスにログインします。
  4. ファイルの内容をポイント 2 から ~/.ssh/authorized_keys にコピーして置き換えます
  5. これで、新しいキーのみで再度ログインできるようになりました。古いキーはもう機能しません。

それだ。お楽しみください:)

于 2016-04-16T17:19:20.070 に答える
10

ElasticBeanstalk プラットフォームを使用している場合は、次のようにしてキーを変更できます。

  • Elastic Beanstalk パネル
  • 構成
  • インスタンス (右上の歯車)
  • EC2 キーペア

これにより、現在のインスタンスが終了し、選択したキー/設定で新しいインスタンスが作成されます。

于 2015-11-02T21:37:21.937 に答える
9

最も簡単な解決策は、の内容をコピーすることです

~/.ssh/id_rsa.pub

AWS インスタンスの authorized_keys に

~/.ssh/authorized_keys

これにより、ssh コマンドに pem ファイルを指定せずに EC2 インスタンスに ssh できるようになります。接続をテストしたら、他のすべてのキーを削除できます。

新しいキーを作成して他の人と共有する必要がある場合は、次の方法で行うことができます。

ssh-keygen -t rsa

これにより private key.pem ファイルが作成され、その公開鍵を次のように取得できます。

ssh-keygen -f private_key.pem -y > public_key.pub

private_key.pem を持っている人なら誰でも接続できます

ssh user@host.com -i private_key.pem
于 2017-01-27T15:21:57.397 に答える
3

以下の手順を試してみましたが、インスタンスを停止せずに機能しました。私の要件は - クライアント マシンを変更したため、古い .pem ファイルでは ec2 インスタンスにログインできませんでした。

  1. 古いマシンの古い .pem ファイルを使用して、ec2 インスタンスにログインします。~/.ssh/authorized_keys を開く

そのファイルに古いキーが表示されます。

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y キーを生成します。手順 1 で開いた ~/.ssh/authorized_keys にキーを追加します。古いキーを削除する必要はありません。

  2. AWS コンソールから、新しいキー ペアを作成します。新しいマシンに保管してください。名前を古い pem ファイルに変更します。理由は、古い pem ファイルがまだ AWS の ec2 インスタンスに関連付けられているためです。

すべて完了。

新しいクライアント マシンから AWS ec2 にログインできます。

于 2016-11-22T06:17:00.143 に答える
1

Yegor256 の答えは私にとってはうまくいきましたが、ドライブのマウントが苦手な人 (私のように!) を助けるためにいくつかのコメントを追加すると思いました:

Amazon では、ボリュームをアタッチするときに、ボリュームに付ける名前を選択できます。/dev/sda - /dev/sdp の範囲の名前を使用しています。新しいバージョンの Ubuntu では、そこに入力した名前が /dev/xvd(x) などに変更されます。

そのため、AWS のマウント名として /dev/sdp を選択し、サーバーにログインしたところ、Ubuntu がボリュームの名前を /dev/xvdp1 に変更したことがわかりました)。次に、ドライブをマウントする必要がありました-私にとっては、次のようにする必要がありました:

mount -t ext4 xvdp1 /mnt/tmp

これらすべてのフープをジャンプした後、/mnt/tmp にあるファイルにアクセスできました

于 2016-05-01T21:46:07.853 に答える
0

これは、キーを変更/追加するインスタンスにアクセスできる場合にのみ機能します。新しいキー ペアを作成できます。または、キー ペアが既にある場合は、新しいペアの公開キーをインスタンスのauthorized_keys ファイルに貼り付けることができます。

vim .ssh/authorized_keys

これで、そのペアの秘密鍵を使用してログインできます。

お役に立てれば。

于 2015-10-05T19:59:33.830 に答える