AWS にて EC2 + Amazon Linux 起動からターミナルで SSH ログインするまで

環境

  • MacbookPro v12.x Monterey

EC2 インスタンスを立ち上げる

EC2 → インスタンス → 「インスタンスを起動」クリック

  • 名前とタグ: 適当
  • アプリケーション及び OS イメージ: Amazon Linux 2 AMI
  • アーキテクチャ: 64ビット(x86)
  • インスタンスタイプ: t2.micro (テストなので安いサーバー)
  • キーペア: 作成して選択(RSA, .pem)
    • pem ファイルを DL して保管しておく
  • ファイアウォール(セキュリティグループ)
    • からの SSH トラフィックを許可する: チェック
    • インターネットからの HTTPs トラフィックを許可する: チェック
    • インターネットからの HTTP トラフィックを許可する: チェック
  • ストレージ
    • EBS ボリューム
      • サイズ(GiB): 8
      • ボリュームタイプ: gp3
      • IOPS: 3000
      • 終了時に削除: No
      • 暗号化済み: No
      • スループット: 125
  • 高度な詳細
    • 難しいことはしない予定なのでスルー
  • 概要
    • インスタンス数: 1
  • 「インスタンスの起動」クリック

SSH ログイン

EC2 → インスタンス → SSH ログインしたいインスタンスを選択 → 「インスタンスに接続」クリック -> SSH クライアント
にログイン方法書いてある。

今回は「 ssh pn.test 」と叩けばログインできるようにする。

DL した pem ファイルを /Users/アカウント に移動して権限を変更する

  • ダウンロードに DL した pem ファイルがある想定
  • ファイル名を ec2-test.pem にしている想定
  • SSH クライアントには pem ファイルを 400 にすると書いてあるけど 600 でも動く
# or cd /Users/自分のアカウント名
$ cd
$ mv Downloads/ec2-test.pem .ssh/
$ sudo chmod 600 .ssh/ec2-test.pem

config 編集

  • AMI のデフォルトユーザー名は ec2-user
$ vi .ssh/config

Host pn.test
  # もしくは Hostname xx.xx.xxx.xxx
  Hostname ec2-xx-xx-xxx-xxx.ap-xxxxxxxx-1.compute.amazonaws.com
  Port 22
  User ec2-user
  IdentityFile ~/.ssh/ec2-test.pem

確認

$ ssh pn.test

普通に ssh 接続する場合

# その1
$ ssh -i "~/.ssh/ec2-test.pem" ec2-user@ec2-xx-xx-xxx-xxx.ap-xxxxxxxx-1.compute.amazonaws.com

# その2
$ ssh -i "~/.ssh/ec2-test.pem" ec2-user@xx.xx.xxx.xxx