現在、ポートフォリオにAWSを導入するため『Amazon Web Services 基礎からのネットワー&サーバー構築』で勉強中。その3章で少しつまづいた所の記録。
詳細
EC2でインスタンス作成後、MacのターミナルからSSHを使いインターネット側からインスタンスに接続する。
つまずきポイント
1. 「.pem」の拡張子ファイルの扱い。
2. キーペアファイルが見つからない状態
1.「.pem」の拡張子ファイルの扱い
躓くまでの流れ
1. インスタンス作成時に「.pem」と言う拡張子を持つキーペアファイルをダウンロード。
2. ダウンロードしたので、とりあえず開いてみようとする。すると画像1が表示される。
3. 躍起になって開こうと調べる。うまく見つからない。
4. 落ち着いて、教科書見直す。すると、そもそもそんな必要がなかった。
結論
キーペアファイルは後の、SSHでの接続に必要なファイルであり、現状開く必要はない。備考
pemファイルって何?
調べてみたが、しっかりとは理解できなかった。現状わかった部分をまとめる。
* 鍵や証明書を格納するファイル
* Base64でエンコードされている
2.キーペアファイルが見つからない状態
躓くまでの流れ
- インスタンス作成終了
- インスタンスにインターネットからアクセスするためパブリックIPアドレスとキーペアファイルを使いMacのターミナルからコマンド実行
$ ssh -i ******.pem ec2-user@[パブリックIPアドレス]
3. 「*****.pem」という名前のファイルは存在しないよって言われる。
$ Warning: Identity file *****.pem not accessible: No such file or directory.
4. キーペアファイルをダウンロードから移動させてないことに気づく。ではどこに移動させればいいのか。これについては教科書に書いてない。なので調べると、隠しファイルの「.sshディレクトリ」に移動すれば良いらしい。
※隠しファイルの表示方法
ターミナルでコマンド実行
$ defaults write com.apple.finder AppleShowAllFiles TRUE 隠しファイル表示
$ killall Finder Finderのを一度終了
$ defaults write com.apple.finder AppleShowAllFiles FALSE 隠しファイル非表示
5. 再度インターネットからアクセスするコマンド実行。(今回はファイルのルートも追加)
$ ssh -i ~/.ssh/*****.pem ec2-user@00.000.00.00
6. また、「*****.pem」という名前のファイルはないと言われる。移動したのでないはずがない。また調べる。このサイトを見つける。https://dev.classmethod.jp/cloud/aws/aws-beginner-ec2-ssh/
どうやら権限の問題なのかもと仮説を立てる。
7. サイトにあった以下のコマンドを実行してみる。このコマンドを権限の範囲を操作するコマンド。
$ chmod 600 ~/.ssh/秘密鍵名.pem
※ 「chmod」というコマンドについて以下のページが参考になる。
https://qiita.com/ntkgcj/items/6450e25c5564ccaa1b95
8. 期待どうりの返答が帰ってきた!!成功!!
The authenticity of host 'パブリックIPアドレス' can't be established.
ECDSA key fingerprint is [見せていいのかわからないので隠します。].
Are you sure you want to continue connecting (yes/no)? yes
結論
- キーペアファイルの置き場所の変更
- キーペアファイルの権限の変更
以上を行えば良い。