AWS
ssh公開鍵認証

「Amazon Web Services 定番業務システム12パターン設計ガイド」を読みながら実際に構築する③ 〜ssh公開鍵認証〜

概要

自分は普段Webやアプリのバックエンドエンジニアとして従事しており、ここ1年はずっとアプリのバックエンドとして、開発、保守を担当している。
インフラは当然のようにAWSが使われているが、構築と保守自体はアウトソーシングされているため、設定変更などは依頼ベースとなっている。
そんな事で知見はある程度貯まっていくが、自分で触らない以上最低限のレベルには到達出来ないという想いから本を買って実際に手を動かす事にした。

まず、以下の本が評判良かったのでAmazonで即購入。
Amazon Web Services 定番業務システム12パターン設計ガイド

本に書いてある事はなるべく書かないで、それ以外にやった事や、本当にど素人だとつまづきそうなところ、自分もハマったところを中心に書いていこうと思う。

過去記事
「Amazon Web Services 定番業務システム12パターン設計ガイド」を読みながら実際に構築する① 〜VPCとサブネットとEC2とセキュリティーグループ〜
「Amazon Web Services 定番業務システム12パターン設計ガイド」を読みながら実際に構築する② 〜Route53〜

OS環境をWebサーバーとして設定する

まず、ssh接続する際の、以前ダウンロードした秘密鍵は通常 $(ホームディレクトリ)/.ssh/ の下に配置する。 .ssh 無ければ作ってください。
SSHクライアントはコマンドベース前提で話をするが、SSHクライアントが何であるかに関わらず以下は決まりなのでやっておくこと。
・ 秘密鍵を配置する .ssh ディレクトリのパーミッションは 700 にする
・ 秘密鍵のパーミッションは 600 にする

以下のコマンドでssh接続する。(例では鍵の名前が「key_1-1.pem」。別に何でもいいけど、拡張子はエンコード方式が分かる.pemが良いと思う)

ssh -i .ssh/key_1-1.pem -l ec2-user <EC2のパブリックIP>

初めて接続する際は以下のようなメッセージが表示されるが、これはsshで初めて接続するIPの場合に、「本当に大丈夫か?」とセキュリティを心配して促してくれるお節介な親切な機能なので気にせずyesとしておけば良い。一度接続すれば .ssh/known_hosts に記録され、次回以降は聞かれなくなる。

The authenticity of host '<EC2のパブリックIP> (<EC2のパブリックIP>)' can't be established.
ECDSA key fingerprint is SHA256:XinTfFzEDv3dQU8g+lq5FQD0wfwR+5pH0tZHT14YDU9.
Are you sure you want to continue connecting (yes/no)?

sshログイン後、言われるがままコマンドを叩き、インターネットでアクセス出来る準備は完了。
そしてブラウザからFQDNでアクセスしようとすると、「このドメインはお名前.comで登録されています」ていう画面に飛ばされてしまう。
どうやらお名前.comにDNSサーバを登録しないとダメらしい。その手順は
「Amazon Web Services 定番業務システム12パターン設計ガイド」を読みながら実際に構築する② 〜Route53〜
に書いてあるのでそちらを参照して欲しい。

・・・

その後1時間くらい待ったらちゃんとFQDNで接続された!


1-1はこれで終わり。次回は1-2。
「Amazon Web Services 定番業務システム12パターン設計ガイド」を読みながら実際に構築する④ 〜AMI、ELB〜