AWS マネジメントコンソールで ec2 インスタンスのキーペアを変更するにはどうすればよいですか? インスタンスを停止し、新しいキー ペアを作成できますが、インスタンスのキー ペアを変更するためのリンクが表示されません。
23 に答える
この回答は、既存のサーバーへのSSHアクセスがなくなった場合(つまり、秘密鍵を紛失した場合)に役立ちます。
それでもSSHアクセスがある場合は、以下のいずれかの回答を使用してください。
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Eric Hammondのブログ投稿のおかげで、これが私がしたことです。
- 実行中のEC2インスタンスを停止します
- ボリュームを切り離します
/dev/xvda1
(ボリュームAと呼びましょう)-ここを参照してください - 新しいキーペアを使用して、新しいt1.microEC2インスタンスを起動します。必ず同じサブネットに作成してください。そうしないと、インスタンスを終了して再度作成する必要があります。-ここを参照してください
/dev/xvdf
(または/dev/sdf
)として、ボリュームAを新しいマイクロインスタンスにアタッチします- 新しいマイクロインスタンスにSSHで接続し、ボリュームAをにマウントします
/mnt/tmp
$ sudo mkdir /mnt/tmp; sudo mount /dev/xvdf1 /mnt/tmp
~/.ssh/authorized_keys
にコピー/mnt/tmp/home/ubuntu/.ssh/authorized_keys
- ログアウト
- マイクロインスタンスを終了します
- ボリュームAを切り離します
- ボリュームAをメインインスタンスに接続します。
/dev/xvda
- メインインスタンスを開始します
.pem
新しいファイルを使用して、以前と同じようにログインします
それでおしまい。
インスタンスが開始されると、インスタンスに関連付けられたキーペアをメタデータ レベルで変更する方法はありませんが、インスタンスへの接続に使用する 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にアップロードする
これは、実行する新しいインスタンスにのみ適用されます。
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
最も簡単なアプローチは次のとおりだと思います。
- 既存のインスタンスの AMI イメージを作成します。
- 新しいキーペアで AMI イメージ (ステップ 1 で作成) を使用して、新しい EC2 インスタンスを起動します。
- 新しいキーで新しい EC2 インスタンスにログインします。
以下の手順に従うと、多くの時間を節約でき、実行中のインスタンスを停止する必要がなくなります。
- 新しいキー ペアを使用して、新しい t1.micro EC2 インスタンスを開始します。必ず同じサブネット内に作成してください。そうしないと、インスタンスを終了して再度作成する必要があります。
- 新しいマイクロ インスタンスに SSH で接続し、 ~/.ssh/authorized_keysの内容をコンピューターのどこかにコピーします。
- 古い ssh keyを使用してメイン インスタンスにログインします。
- ファイルの内容をポイント 2 から ~/.ssh/authorized_keys にコピーして置き換えます
- これで、新しいキーのみで再度ログインできるようになりました。古いキーはもう機能しません。
それだ。お楽しみください:)
ElasticBeanstalk プラットフォームを使用している場合は、次のようにしてキーを変更できます。
- Elastic Beanstalk パネル
- 構成
- インスタンス (右上の歯車)
- EC2 キーペア
これにより、現在のインスタンスが終了し、選択したキー/設定で新しいインスタンスが作成されます。
最も簡単な解決策は、の内容をコピーすることです
~/.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
以下の手順を試してみましたが、インスタンスを停止せずに機能しました。私の要件は - クライアント マシンを変更したため、古い .pem ファイルでは ec2 インスタンスにログインできませんでした。
- 古いマシンの古い .pem ファイルを使用して、ec2 インスタンスにログインします。~/.ssh/authorized_keys を開く
そのファイルに古いキーが表示されます。
ssh-keygen -f YOUR_PEM_FILE.pem -y キーを生成します。手順 1 で開いた ~/.ssh/authorized_keys にキーを追加します。古いキーを削除する必要はありません。
AWS コンソールから、新しいキー ペアを作成します。新しいマシンに保管してください。名前を古い pem ファイルに変更します。理由は、古い pem ファイルがまだ AWS の ec2 インスタンスに関連付けられているためです。
すべて完了。
新しいクライアント マシンから AWS ec2 にログインできます。
Yegor256 の答えは私にとってはうまくいきましたが、ドライブのマウントが苦手な人 (私のように!) を助けるためにいくつかのコメントを追加すると思いました:
Amazon では、ボリュームをアタッチするときに、ボリュームに付ける名前を選択できます。/dev/sda - /dev/sdp の範囲の名前を使用しています。新しいバージョンの Ubuntu では、そこに入力した名前が /dev/xvd(x) などに変更されます。
そのため、AWS のマウント名として /dev/sdp を選択し、サーバーにログインしたところ、Ubuntu がボリュームの名前を /dev/xvdp1 に変更したことがわかりました)。次に、ドライブをマウントする必要がありました-私にとっては、次のようにする必要がありました:
mount -t ext4 xvdp1 /mnt/tmp
これらすべてのフープをジャンプした後、/mnt/tmp にあるファイルにアクセスできました
これは、キーを変更/追加するインスタンスにアクセスできる場合にのみ機能します。新しいキー ペアを作成できます。または、キー ペアが既にある場合は、新しいペアの公開キーをインスタンスのauthorized_keys ファイルに貼り付けることができます。
vim .ssh/authorized_keys
これで、そのペアの秘密鍵を使用してログインできます。
お役に立てれば。