1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EC2キーペアに登録してある公開鍵を確認してみる

Posted at

EC2のキーペアで生成した秘密鍵は、キー登録した際にダウンロードできるかぎりとなりますが。

公開鍵については取得する方法が用意されているので本記事ではこれらを試してみます。

パブリックキーマテリアルを取得する

今回実行する環境

From the private key

ダウンロードした秘密鍵から公開鍵を取り出す。

今回、EC2キーペア画面でqiita-rsaを登録し取得したqiita-rsa.pemから公開鍵を取得してみます。

ドキュメントではLinuxとMacOSでの手順が書かれていますが。
Windowsの場合はパーミッションエラーが出た場合の調整方法が異なります。

今回はWidowsのOpenSSHで実行した所、下記のエラーが表示されたので対応します。

Bad permissions. Try removing permissions for user: xxxxxxxxxxx on file C:/qiita/raw-key/qiita-rsa.pem.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\qiita\raw-key\qiita-rsa.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\qiita\raw-key\qiita-rsa.pem": bad permissions

image.png

今回パーミッションエラーが出たpemファイルのセキュリティタブを確認してみると、エラーメッセージにあるように、いろいろなユーザが許可されている事がわります。

image.png

この状態だと警告となってしまうため、詳細設定を選択

image.png

継承の無効化 を選択

image.png

このオブジェクトから継承されたアクセス許可をすべて削除 を選択

image.png

追加 を選択

image.png

プリンシパルの選択 を選択

image.png

選択するオブジェクトを入力して下さいの欄に、ログインしているユーザー名を入力して名前の確認 を選択

image.png

名前の確認が成功すると、入力したオブジェクト名に下線がつくので確認できたら

OK を選択

image.png

OK を選択

image.png

余計なユーザに権限がついてない事を確認してOKを選択

image.png

OK を選択

image.png

ファイルのセキュリティを上記のように変更した状態で、もう一度コマンドを実行すると公開鍵を取り出す事ができます。

image.png

From the instance metadata

EC2でインスタンスのメタデータに公開鍵の情報を含まれているのでここで確認してみます。

今回確認するインスタンスは下記で、インスタンスメタデータサービスバージョン(IMDS)のバージョン1と2の両方を参照できるように構築しています。

image.png

IMDS version 1の場合

curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

image.png

IMDS Version 2の場合

TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" –v http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key

image.png

From the instance

EC2でLinuxインスタンスを構築すると、ssh接続のために公開鍵を~/.ssh/authorized_keysに配置するため、ここから確認してみます。

画像の環境については、先程From the instance metadataで構築したEC2インスタンスになります。

image.png

From describe-key-pairs

aws-cliec2 describe-key-pairsコマンドに--include-public-keyオプションをつけると公開鍵を出力します。

CloudShellで実行すると下記のようになります。

image.png

総評

公開鍵があとから確認できるからどうしたといった感はありますが。
(あえて言えば、EC2キーペアで生成したキーの公開鍵を他サーバーでも使いたいので取得したい時とか?)

AWSではこういう所に公開鍵が登録されていて、EC2を構築するときにいい感じに公開鍵を配置してくれてるんだなって感じです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?