0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Bastion + SSHエージェントフォワーディングによる接続

Last updated at Posted at 2025-04-09

🛡️ Bastion サーバーとは?

Bastion サーバーは、外部から内部ネットワークへの接続を中継する セキュリティゲートウェイサーバー です。通常、以下のような目的で使用されます:

  • プライベートネットワーク内のサーバー(例:EC2)に直接アクセスせず、Bastion を経由してのみ接続を許可する
  • 外部からの直接接続を防ぎ、アクセスを中央で管理する
  • セキュリティを強化し、接続ログを追跡可能にする

このマニュアルでは Bastion サーバーを Docker コンテナ で構築し、クライアントから SSH エージェントフォワーディングを使って EC2 コンテナに接続する環境を構築します。

ジョブセッティング環境は、次にリンクから受け取ることができる

git clone https://github.com/rinechran/bastion-lab.git
予備 git
git clone https://git.kudryavka.me/blog/bastion-lab.git

📦 システム構成図

[ローカルクライアント(Windows)]
   - bastion_key.pem
   - ec2_key.pem(ssh-agent に登録)

     ↓ SSH -A(エージェントフォワーディング)

[Bastion(Docker コンテナ)]
   - ec2_key.pem は保持しない
   - クライアントの ssh-agent 経由で署名要求

     ↓ SSH

[EC2(Docker コンテナ)]
   - authorized_keys に ec2_key.pem.pub を登録

✅ ファイル構成

bastion-ec2-lab/
├── docker-compose.yml
├── keys/
│   ├── bastion_key.pem         # Bastion 接続用秘密鍵
│   └── ec2_key.pem             # ssh-agent に登録する EC2 鍵
├── bastion/
│   ├── Dockerfile
│   ├── sshd_config
│   ├── entrypoint.sh
│   └── authorized_keys         # bastion_key.pem.pub を配置
└── server/
    ├── Dockerfile
    ├── sshd_config
    ├── entrypoint.sh
    └── authorized_keys         # ec2_key.pem.pub を配置

🔧 ステップ1: ssh-agent 起動 & EC2 鍵の登録

PowerShell(管理者として実行) を開き、以下を入力:

Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent
ssh-add .\keys\ec2_key.pem

登録に成功すると ssh-add -l コマンドで確認可能です


🚀 ステップ2: Docker コンテナの起動

docker-compose up -d --build

🔐 ステップ3: Bastion に接続(エージェントフォワーディング付き)

ssh -A -i keys/bastion_key.pem root@localhost -p 2222

-A オプションで ssh-agent フォワーディングが有効になります


📡 ステップ4: Bastion 内から EC2 に接続

ssh root@ec2

EC2 コンテナは hostname: ec2 として構成されている必要があります


📄 全体のコマンドまとめ

# ssh-agent 起動 & EC2 鍵登録
Start-Service ssh-agent
ssh-add .\keys\ec2_key.pem

# Bastion に接続
ssh -A -i keys/bastion_key.pem root@localhost -p 2222

# Bastion 内から EC2 に接続
ssh root@ec2
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?