web-dev-qa-db-ja.com

Ec2インスタンスのキーペアを変更する

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

337
Michael Chen

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.micro EC2インスタンスを起動します。 必ず同じサブネット内に作成してください 、それ以外の場合はインスタンスを終了して再度作成する必要があります。 - ここをクリック
  4. /dev/xvdf(または/dev/sdf)として、ボリュームAを新しいマイクロインスタンスに接続します。
  5. 新しいマイクロインスタンスにSSHで接続し、ボリュームAを/mnt/tmpにマウントします。

    $ Sudo mount/dev/xvdf1/mnt/tmp

  6. ~/.ssh/authorized_keys/mnt/tmp/home/ubuntu/.ssh/authorized_keysにコピーする

  7. ログアウト
  8. マイクロインスタンスを終了
  9. それからボリュームAを切り離す
  10. ボリュームAを/dev/xvdaとしてメインインスタンスに接続します。
  11. メインインスタンスを起動します
  12. 新しい.pemファイルを使用して、以前のようにログインします

それでおしまい。

423
yegor256

インスタンスが起動されると、メタデータレベルでインスタンスに関連付けられたキーペアを変更することはできませんが、インスタンスに接続するために使用する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ファイルを編集した後は、ファイルの編集に使用しているセッションから切断する前に、必ず different 端末を使用してインスタンスにsshでログインできることを確認してください。あなたはミスを犯したくないし、インスタンスから完全に締め出したくありません。

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

これは私がこれについて書いた記事です:

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

これはあなたが実行した新しいインスタンスにのみ適用されます。

166
Eric Hammond

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
67
Pat Mcb

AWS EC2サポートからの指示:

  1. PEMログインを変更する
  2. eC2コンソールに行きます
  3. [ネットワークとセキュリティ]の[キーペア]をクリックし、[キーペアの作成]をクリックします。
  4. 新しいキーペアに名前を付けて、.pemファイルを保存します。キーペアの名前はあなたのインスタンスに接続するために使用されます
  5. インスタンスへのSSH接続を作成し、開いたままにします
  6. puttyGenで、「ロード」をクリックして.pemファイルをロードします。
  7. SSH-2 RSAオプションボタンをチェックしたままにします。 「秘密鍵を保存する」をクリックします。ポップアップウィンドウに警告が表示されたら、「はい」をクリックします。
  8. 「公開鍵を保存」をクリックして、公開鍵を生成します。これは私たちがあなたの現在のインスタンスにコピーしようとしている公開鍵です。
  9. 公開鍵を新しい鍵ペアの名前と拡張子.pubを付けて保存します。
  10. メモ帳で公開鍵の内容を開く
  11. "Comment:" imported-openssh-key "と" ---- END SSH2 PUBLIC KEY ---- "の前にある内容をコピーしてください。
    注 - 内容を1行としてコピーする必要があります - すべての新しい行を削除してください
  12. 接続しているインスタンスで、ツールviを使用してauthorized_keysファイルを開きます。次のコマンドを実行します。vi .ssh/authorized_keysファイルに元の公開鍵も表示されます。
  13. ファイルの上にある最初の公開鍵の内容の末尾にカーソルを移動します。挿入するには「i」と入力します。
  14. 新しい行に「ssh-rsa」と入力し、公開鍵の内容、スペース、および.pemファイルの名前(.pemを除く)を貼り付ける前に、スペースを追加します。前の行と同じ形式
  15. escキーを押して、「wq!」と入力します。

これは更新されたauthorized_keysファイルを保存します

今すぐあなたの新しいキーペアを使用してあなたのインスタンスへの新しいSSHセッションを開いてみてください

新しいキーペアを使用してインスタンスにSSH接続できることを確認したら、u .ssh/authorized_keyを使用して古いキーを削除できます。

Shaggieの発言への回答:

インスタンスに接続できない場合(たとえば、キーが破損している場合)は、AWSコンソールを使用してボリュームをデタッチします( http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume) .html )をクリックして、ボリューム上のキーを変更して以前のインスタンスに再接続するよりも、作業中のインスタンスに再接続します。

47
Elia Weiss

Elastic Beanstalkで管理されている場合、アクティブなEC2キーペアをcan変更できることに気付きました。 [Elastic Beanstalk]> [設定]> [セキュリティ]で、[EC2キーペア]ドロップダウンから新しいキーを選択します。次のことを確認するメッセージが表示されます。

EC2KeyName:オプションEC2KeyName設定の変更はすぐには有効になりません。既存の各EC2インスタンスが置き換えられ、新しい設定が有効になります。

これを行うと、インスタンスは既に終了しました。その後、起動し、終了し、再び起動しました。どうやら「置換」とは、新しいインスタンスを終了して作成することを意味します。ブートボリュームを変更した場合は、最初にAMIを作成してから、同じElastic Beanstalk> Configuration> InstancesフォームでCustom AMI IDと同じAMIを指定します。これは、EC2インスタンスの置き換えについても警告します。

EC2キーペアとカスタムAMI IDを変更し、両方に関する警告が表示されたら、保存をクリックして続行します。

インスタンスを再作成するとIPアドレスが変更されるため、SSH経由で接続するときに使用するEC2コンソールから新しいIPアドレスを取得する必要があることに注意してください。

35
Mark Berry

私はこのアプローチを経て、しばらくしてそれを機能させることができました。実際のコマンドがないので大変でしたが、私はそれを考え出しました。しかし、すぐ後にはるかに簡単なアプローチが見つかり、テストされました。

  1. インスタンスをAMIとして保存します(再起動するかどうかは関係ありません。再起動することをお勧めします)。これはEBSの支援がある場合にのみ機能します。
  2. 次に、このAMIからインスタンスを起動して新しいKeyfileを割り当てます。
  3. エラスティックIP(該当する場合)を新しいインスタンスに移動すれば完了です。
28
OldGreg

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

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

それだ。楽しい :)

14
vinay saini

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

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

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

8
Vaelyr

最も簡単な方法は、

  1. 新しいキーペアで(手順1の)AMIイメージを使用して新しいEC2インスタンスを起動します。
  2. 新しいキーで新しいEC2インスタンスにログインします。
  3. .
6
Sergey

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

~/.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 [email protected] -i private_key.pem
5
snez

authorized_keysでルートデバイスをローテーションしてSSH公開キーを変更する必要はありません。そのため、userdataを使用してsshキーを任意のインスタンスに追加できます。そのためには、AWSコンソールまたはssh-keygenを使用して新しいKeyPairを作成する必要があります。

ssh-keygen -f YOURKEY.pem -y

これにより、新しいSSH KeyPairの公開キーが生成され、この公開キーがコピーされ、以下のスクリプトで使用されます。

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//

再起動後、マシンは指定されたSSH publchキーを取得します。最初の再起動後にユーザーデータを削除します。 起動時のユーザーデータ の詳細をご覧ください。

3
Hardeep Singh

以下の手順を試してみましたが、インスタンスを停止することなく動作しました。私の要件は、クライアントマシンを変更したときに、古い.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にログインできます。

2
Mr. Bordoloi

Yegor256の答えは私のために働きました、しかし、私はドライブをマウントすることがあまり得意でない人たちを助けるために私がちょうど私のコメントを加えたいと思いました:

あなたがそれを接続するとき、Amazonはあなたがあなたがボリュームに名前をつけたいものの選択をあなたに与える。/dev/sdaから/ dev/sdpまでの範囲の名前を使用してください。新しいバージョンのUbuntuでは、そこに入力した名前が/ dev/xvd(x)またはその効果のために変更されます。

そこで私は、AWSのマウント名として/ dev/sdpを選択してからサーバーにログインし、Ubuntuが自分のボリュームの名前を/ dev/xvdp1に変更したことを発見しました。それから私はドライブをマウントしなければなりませんでした - 私のために私はこのようにそれをしなければなりませんでした:

mount -t ext4 xvdp1 /mnt/tmp

これらすべてのフープを飛び越えた後、私は/ mnt/tmpで私のファイルにアクセスすることができました

1
Ryan

私の問題は、パブリックIPではなくDNSで試しました。それからpublic DNSで試しましたが、解決しました

0
vipin cp

EC2インスタンスのキーを置き換えるためのいくつかのオプションがあります。

  1. .ssh/authorized_keysファイルでキーを手動で置き換えることができます。ただし、暗号化されていない場合は、実際にインスタンスまたはボリュームにアクセスする必要があります。
  2. AWS Systems Managerを使用できます。これにはエージェントをインストールする必要があります。

最初の選択肢は、回答または選択した検索エンジンで簡単に見つけることができるので、Systems Managerに集中したいと思います。

  1. サービスを開くSystems Manager
  2. 左側のAutomationをクリックしてください。
  3. Execute Automationをクリック
  4. AWSSupport-TroubleshootSSHを選択します(通常は最後のページにあります)

公式AWSドキュメント に詳細情報があります。

0
Hendric

VMにログインできず、sshキーを削除した場合、以下の手順を使用してec2のキーペアを変更することもできます。手順1に進み、ec2インスタンスを停止します。 2)VMおよびストレージのスナップショットを作成します。 3)新しいVMを作成し、スナップショットを選択して、スナップショットからVMを作成します。 4)VMを作成すると、キーペアがダウンロードされます。 5)VM UPになったら、新しいキーペアでsshを実行でき、データも元に戻ります。

0

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

vim .ssh/authorized_keys

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

お役に立てれば。

0
skd