初心者必見!AWS EC2でのSSH接続方法と接続方法のポイント

目次

はじめに

概要

本記事は、AWSのEC2インスタンスへSSHで接続する手順をわかりやすくまとめたガイドです。接続方法の比較、接続に必要な準備、セキュリティグループの設定、各OS別の接続手順(Mac/Linux、Windows、AWSコンソール)、そしてプライベートサブネット内の接続方法まで順を追って解説します。

本記事の目的

  • 適切な接続方法を選べるようにする
  • 鍵やセキュリティ設定の準備ができるようにする
  • 実際にSSH接続を行えるようにする
  • プライベートサブネット内のインスタンスへ安全に接続する手順を理解する

対象読者

  • EC2に接続したい初心者から中級者
  • 基本的なターミナル操作やAWSコンソールの操作に慣れていると読みやすいです

読み方のポイント

各章は順番に進めることをおすすめします。実際の操作は慎重に行い、秘密鍵の管理やセキュリティ設定は特に注意してください。

AWS EC2に接続する3つの方法とSSH接続の特徴

概要

AWS EC2に接続する代表的な方法は次の3つです:SSH、Session Manager、EC2 Instance Connect(EIC)。用途や運用方針に応じて使い分けます。

1. SSH(伝統的な方法)

SSHは秘密鍵と公開鍵を使う接続です。ローカルで秘密鍵(例:.pemファイル)を保管し、EC2側に公開鍵を置きます。ターミナルからsshコマンドで接続します。例:ssh -i mykey.pem ec2-user@IP
長所:広く使われており、ツールや手順が豊富です。短所:秘密鍵の管理が必要で、間違えるとリスクになります。

2. Session Manager(Systems Manager)

Session Managerはインバウンドのポートを開かずにブラウザやAWS CLIから接続できます。EC2にSSM Agentが入っていることが前提です。長所:鍵管理不要で監査ログも取りやすいです。短所:事前のセットアップが必要です。

3. EC2 Instance Connect(EIC)

EICは一時的に公開鍵を生成して接続します。ユーザー側で長期の鍵を持たずに済み、短時間のアクセス向けに便利です。長所:鍵の配布負担が軽いです。短所:対応OSや設定に制約があります。

SSH接続の特徴(まとめ)

  • 認証:秘密鍵による公開鍵認証を使います。安全性は高いですが鍵の保管が重要です。
  • 通信:暗号化されたチャネルで通信します。パスワードより安全です。
  • 運用:自動化ツールや既存ワークフローと相性が良いです。鍵管理とセキュリティルールの運用が必要です。

SSH接続の前提条件と準備

前提条件(接続前に必ず確認すること)

  • インスタンスが「起動中」でステータスチェックに合格していること。
  • 接続先のパブリックIPv4アドレスまたはパブリックDNS名を把握していること。
  • セキュリティグループでTCPポート22のインバウンドが許可されていること。

1. キーペア(秘密鍵)の作成と権限設定

  • EC2作成時にキーペアを作成します。ダウンロードしたファイル(例: key.pem)を安全に保管してください。
  • Linux/Macでは権限を設定します: chmod 400 key.pem。これでSSHが秘密鍵を受け入れます。
  • WindowsではPuTTYを使う場合、PuTTYgenで.pemを.ppkに変換してください。

2. パブリックIPの有効化

  • インスタンスにパブリックIPが割り当てられているか確認します。割り当てがない場合、Elastic IPを関連付ける方法が便利です。

3. セキュリティグループの確認

  • インバウンドルールに「ポート22、プロトコルTCP、送信元IP(例: 自分のIP/32)」があるか確認してください。広く開けると危険なので、可能な限り自分のIPだけを許可します。

4. 接続情報の例

  • Linux/Mac: ssh -i key.pem ec2-user@<パブリックIP>
  • Ubuntu: ssh -i key.pem ubuntu@<パブリックIP>
  • Windows(PuTTY): 変換した.ppkを指定して接続します。

接続前の最終チェック

  • インスタンスの状態、鍵のパーミッション、セキュリティグループ、接続先アドレスを再確認してください。これらが整っていれば、次章で実際の接続手順に進めます。

セキュリティグループの設定方法

設定の要点

SSHで接続できるようにするには、セキュリティグループのインバウンドに「タイプ: SSH」「プロトコル: TCP」「ポート範囲: 22」を追加し、ソースに接続元のパブリックIPを指定します。アウトバウンドはデフォルト(全許可)のままで問題ありません。

コンソールでの具体的手順

  1. AWSコンソールで「EC2」→「セキュリティグループ」を開きます。
  2. 対象のセキュリティグループを選び、「インバウンドルールを編集」をクリックします。
  3. ルールを追加:タイプで「SSH」、ポート22、プロトコルは自動でTCPになります。
  4. ソース欄に接続元のIPをCIDR形式で入力(例: 203.0.113.45/32)。入力後に保存します。
  5. セキュリティグループをEC2インスタンスに適用しているか確認します。

接続元IPの調べ方と指定方法

接続元が自宅や職場の固定IPなら、そのIPを/32で指定します。自分のグローバルIPは「what is my IP」等のサイトで確認できます。IPが動的に変わる場合は、都度ルールを更新するか、Elastic IPやVPNの利用を検討してください。

注意点と推奨設定

  • 0.0.0.0/0(全世界許可)は避けてください。リスクが高くなります。
  • 必要なら特定のネットワークレンジだけ許可するか、踏み台(bastion)を使ってアクセスを限定してください。
  • ルール追加後に接続できない場合、インスタンスのOS側ファイアウォール(iptables/ufw)やキーペアの設定も確認してください。

SSH接続の実行方法

前提:鍵ファイルの取り扱い

キーペア(.pem)ファイルは厳重に保管します。パーミッションは必ず制限してください(例:chmod 400 mykey.pem)。公開鍵はEC2側に登録済みである必要があります。共有や公開は避け、バックアップは安全な場所に保管します。

Mac / Linux での接続手順

  1. ターミナルを開きます。
  2. 鍵の所有権と権限を確認します(chmod 400 mykey.pem)。
  3. 接続コマンドを実行します。例:ssh -i mykey.pem ec2-user@203.0.113.10
  4. ユーザー名はAMIにより異なります(Amazon Linux: ec2-user、Ubuntu: ubuntu、RHEL: ec2-user など)。
  5. 初回はホスト鍵の確認メッセージが出ます。指示に従って続行してください。

Windows(PuTTY)での接続手順

  1. PuTTYgenで.pemを.ppkに変換します(Load → PEMファイルを選択 → Save private key)。
  2. PuTTYを開き、Host Name欄にec2-user@IPアドレスを入力するか、IPを入力してUserを設定します(Connection→DataでAuto-login usernameを指定可)。
  3. 左メニューのSSH→Authで先ほど生成した.ppkを指定します。
  4. Openで接続します。

AWSマネジメントコンソールからの接続

EC2画面の該当インスタンスを選び「接続」ボタンを押すと、推奨コマンドが表示されます。表示されたsshコマンドをコピーしてローカルで実行できます。ブラウザベースの接続機能が使える環境もあります。

よくあるトラブルと対処法

  • Permission denied (publickey):鍵ファイルが間違っているか権限が緩すぎます。鍵とユーザー名を再確認してください。
  • Connection timed out:セキュリティグループでSSH(ポート22)が許可されているか、インスタンスのパブリックIPが有効か確認します。
  • Host key verification failed:以前とホスト鍵が変わった可能性があります。known_hostsを確認して不要な古いエントリを削除してください。

上記手順でまず接続を試みてください。必要なら実際のコマンドや画面例をお送りします。

プライベートサブネット内のEC2への接続方法

概要

プライベートサブネット内のEC2に接続する代表的な方法は三つです。
1) NAT Gateway経由でインターネット接続(主にアウトバウンド)
2) VPCネットワーク内で直接接続(VPNや専用線、VPCエンドポイントを利用)
3) 踏み台サーバー(Bastion Host)を経由したSSH接続

1. NAT Gateway経由(注意点)

NAT Gatewayはプライベートサブネットからの外向き通信(例: OSやパッケージのアップデート)を可能にします。外部から直接SSHで入ることはできません。設定はプライベートのルートテーブルで0.0.0.0/0をNATに向け、セキュリティグループは必要なアウトバウンドを許可します。

2. VPC内で直接接続する方法

社内ネットワークからVPCへVPNやDirect Connectで接続すると、プライベートIPでEC2にアクセスできます。VPCエンドポイントはAWSサービスとの通信をAWSネットワーク内に留めますが、外部端末から直接SSHするには、まずネットワーク経路(VPN等)を確立する必要があります。ルートテーブルとセキュリティグループでアクセス元のCIDRを許可してください。

3. 踏み台サーバー(Bastion)の使い方

踏み台はパブリックサブネットに置き、管理者のIPだけSSHを許可します。プライベート側のEC2は踏み台のセキュリティグループからのSSHを許可します。例:
– シンプル: ssh -i bastion.pem ec2-user@bastion-public-ip
– ProxyJump例: ssh -o “ProxyCommand=ssh -i bastion.pem -W %h:%p ec2-user@bastion-public-ip” -i private.pem ec2-user@private-ip
セキュリティを高めるため、踏み台の鍵は厳重に管理し、不要なユーザーはアクセス権を外してください。

設定チェックリスト

  • プライベートのルートがNATまたはVPNへ向いている
  • セキュリティグループが最小限の許可のみ設定されている
  • キーペアや認証情報を適切に管理している

以上のポイントを押さえれば、安全にプライベートサブネット内のEC2へ接続できます。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

目次