はじめに
「踏み台サーバ経由でSSH接続したいけど、コマンドが長くて毎回打つのがしんどい…」
そんな経験はないでしょうか。
SSHは便利ですが、踏み台サーバを経由する構成になると、毎回かなり長いコマンドを書く必要があります。
ssh -i "C:\Users\<ユーザー名>\.ssh\<秘密鍵>" -o ProxyCommand="ssh -i C:\Users\<ユーザー名>\.ssh\<鍵ファイル> -W %h:%p <ユーザー>@<踏み台サーバIP>" <ユーザー>@<接続先IP>
このようなコマンドは
- 長い
- 打ち間違えやすい
- 毎回同じことを書くのが面倒
という問題があります。
そこで本記事では、SSH config(設定ファイル)を使ってこの問題を解決する方法を、超初心者向けに丁寧に解説します。
この記事でできること
- 踏み台サーバ経由のSSH接続の仕組みが理解できる
- SSH config の役割がわかる
- 実際に設定して接続できるようになる
- 最終的に
ssh targetのような短いコマンドで接続できる
ssh target
ネットワーク構成
まずは全体像をイメージします。
ポイントは次の通りです。
- 接続先サーバには直接アクセスできない
- いったん踏み台サーバに接続する
- そこから接続先へ進む
この「中継する仕組み」が踏み台サーバです。
SSH configとは
SSH config は、SSH接続に必要な情報をファイルにまとめておける仕組みです。
C:\Users\<ユーザー名>\.ssh\config
このファイルに設定を書いておくことで、
- 接続先
- ユーザー
- 鍵
- 踏み台設定
を毎回コマンドに書かなくてよくなります。
設定手順
手順①:configファイル作成
notepad C:\Users\<ユーザー名>\.ssh\config
- 無ければ新規作成
- あればそのまま編集
手順②:設定を書く
Host bastion
HostName <踏み台サーバIP>
User <ユーザー>
IdentityFile C:\Users\<ユーザー名>\.ssh\<鍵ファイル>
Host target
HostName <接続先IP>
User <ユーザー>
IdentityFile C:\Users\<ユーザー名>\.ssh\<秘密鍵>
ProxyJump bastion
ここでのポイント:
-
bastion→ 踏み台サーバ -
target→ 接続先サーバ
この「名前」を後で使います。
手順③:接続する
ssh target
これだけで接続できます。
設定内容の解説
設定内容は、次の表にまとめると一目で理解できます。
| 項目 | 内容 | 一言でいうと |
|---|---|---|
| Host | 接続設定の名前(例:bastion / target) | 呼び出し用の名前 |
| HostName | 接続先のIPアドレス | どこに接続するか |
| User | ログインユーザー名 | 誰でログインするか |
| IdentityFile | 秘密鍵のパス | どの鍵を使うか |
| ProxyJump | 踏み台サーバを経由する設定 | どの経路で接続するか |
補足
-
Host は、あとで
ssh targetのように呼び出すための名前です - ProxyJump があることで、「踏み台 → 接続先」という流れが自動化されます
最初は難しく感じるかもしれませんが、
「どこに・誰で・どの鍵で・どうやって接続するか」を書いているだけです。
動きのイメージ
Windows Terminal設定
Windows Terminalと組み合わせると、さらに便利になります。
手順
- Windows Terminalを開く
- 設定を開く
- プロファイルを追加
- コマンドラインに以下を入力
ssh target - 保存
これで、プロファイルを選ぶだけでSSH接続が実行されます。
よくあるトラブル
接続できない
- パスが間違っている
- 鍵の場所が違う
- ユーザー名ミス
- IPアドレス誤り
ProxyJumpが効かない
ssh -V
OpenSSHのバージョンが古い可能性があります。
まとめ
- 長いコマンドを省略できる
- 接続設定を一元管理できる
- ミスを減らせる
- 1コマンドで接続可能
- Windows Terminalでさらに効率化
おわりに
SSH config を使うと、踏み台サーバ経由の接続がシンプルになります。
最初に一度設定しておけば、その後の作業がかなり楽になります。
まずは一度、configファイルを作るところから試してみてください。