CLI から EC2 に SSH 接続する

2025-08-23

#shell

#AWS

#EC2

2コマンドでインスタンスを起動してSSH接続

Overview

毎回 AWS コンソールから EC2 インスタンスを起動してSSH接続するのは面倒なので、CLIから簡単に操作できるようにする
また、再起動ごとに接続先ホストが変わるため、1 command で確認と接続ができるようにする

In short

SSH config の記述

~/.ssh/config
Host ec2-connect
IdentityFile ~/.ssh/{your-key}
LocalForward {local_port} {remote_host}:{remote_port}
User {your-user}
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

インスタンスを起動

Terminal window
aws ec2 start-instances --instance-ids {your_instance_id}

ホスト名を確認して接続

Terminal window
ssh ec2-connect -o HostName=$(aws ec2 describe-instances \
--instance-ids {your_instance_id} \
--query "Reservations[0].Instances[0].PublicDnsName" \
--output text --no-cli-pager)

Detail

事前に AWS CLI の接続設定や EC2 インスタンスの作成、秘密鍵の設定もろもろは完了している前提

SSH 接続

SSH config を書いておく

今回は毎回ホスト名が変わってしまうので、HostKey の確認はスキップし Known Hosts に保存しないようにする
あんまり良くないので良い子は真似しないこと

~/.ssh/config
Host ec2-connect # 任意のホスト名
IdentityFile ~/.ssh/{your_key} # 秘密鍵のパス
User {your-user} # 接続先インスタンスのユーザ名(例: ubuntu, ec2-user など)
StrictHostKeyChecking no # ホストキーの確認をスキップ
UserKnownHostsFile /dev/null # Known Hosts ファイルを無効化

ポートフォワーディングを設定する場合は、下記を追加

~/.ssh/config
LocalForward {local_port} {remote_host}:{remote_port}

SSH config で設定したホスト名に、起動中の EC2 インスタンスのホスト名を設定して接続

-o オプションは既存の SSH config の設定を上書きするために使用する
今回は HostName を上書き

Terminal window
ssh ec2-connect -o HostName={your_host_name}

インスタンス起動

インスタンスIDを指定して起動する

インスタンスIDは変わらないので(それはそう)どこかにメモしておく

Terminal window
aws ec2 start-instances --instance-ids {your_instance_id}

ホスト名確認

接続する DNS ホスト名を確認する

DNS ホスト名は毎回変わるので、インスタンス起動後に確認する必要がある
ご丁寧に paginated で出力されるので、--no-cli-pager オプションを付けて標準出力に出す

Terminal window
aws ec2 describe-instances \
--instance-ids {your_instance_id} \
--query "Reservations[0].Instances[0].PublicDnsName" \
--output text --no-cli-pager

1 command でホスト名確認と接続

上述のコマンドを合体、完成!

Terminal window
ssh ec2-connect -o HostName=$(aws ec2 describe-instances \
--instance-ids {your_instance_id} \
--query "Reservations[0].Instances[0].PublicDnsName" \
--output text --no-cli-pager)

ref