SSH ProxyJumpの設定方法|踏み台サーバ経由の接続を簡単にする便利機能を解説

目次
SSH ProxyJumpを利用して踏み台サーバ経由の接続を効率化しよう
企業ネットワークやクラウド環境では、内部サーバへ直接SSH接続できない構成が一般的です。
そのため管理者は踏み台サーバ(Bastion Host)を経由して目的のサーバへ接続します。
従来はSSH接続後に再度SSHコマンドを実行する方法が一般的でしたが、OpenSSHにはProxyJumpという便利な機能が用意されています。
ProxyJumpを利用すると、1回のSSHコマンドだけで踏み台サーバを経由した接続が可能になります。
本記事ではProxyJumpの仕組みや設定方法、実務での活用例について詳しく解説します。
ProxyJumpとは
ProxyJumpはOpenSSHに搭載されている踏み台サーバ接続機能です。
SSHクライアントが自動的に踏み台サーバを経由し、目的のサーバへ接続します。
OpenSSH 7.3以降で利用できます。
オプションとしては以下を利用します。
ssh -J
従来の接続方法
ProxyJumpがない環境では次のような接続を行います。
$ ssh user@bastion
$ ssh user@internal-server管理者は踏み台サーバへログインした後、内部サーバへ再接続する必要がありました。
ProxyJumpを利用した接続
ProxyJumpを利用すると次のようになります。
$ ssh -J user@bastion user@internal-server1回のコマンドで内部サーバへ接続できます。
途中の踏み台サーバへのログイン操作は不要です。
構成例
一般的な構成です。
管理PC
↓
踏み台サーバ
↓
内部サーバ
内部サーバは外部公開されていません。
SSH接続は踏み台サーバ経由のみ許可されています。
基本構文
最も基本的な書式です。
$ ssh -J jumpuser@bastion serveruser@internal接続元から見ると直接内部サーバへ接続しているように利用できます。
IPアドレス指定例
$ ssh -J admin@203.0.113.10 admin@10.0.1.20203.0.113.10が踏み台サーバです。
10.0.1.20が内部サーバです。
ProxyCommandとの違い
ProxyJump登場以前はProxyCommandが利用されていました。
例です。
ProxyCommand ssh bastion -W %h:%p現在はProxyJumpの方がシンプルで分かりやすいため主流となっています。
SSH設定ファイルで利用する
毎回長いコマンドを入力するのは大変です。
そこで~/.ssh/configへ設定します。
Host bastion
HostName 203.0.113.10
User admin
Host web01
HostName 10.0.1.20
User admin
ProxyJump bastion
これで以下だけで接続できます。
$ ssh web01複数サーバ管理での活用
実務では多数のサーバを管理することがあります。
例えば以下です。
Host db01
HostName 10.0.1.30
ProxyJump bastion
Host app01
HostName 10.0.1.40
ProxyJump bastion
Host web01
HostName 10.0.1.50
ProxyJump bastion管理効率が大幅に向上します。
複数の踏み台サーバを経由する
ProxyJumpは複数経由にも対応しています。
$ ssh -J jump1,jump2 user@target以下のような構成で利用できます。
管理PC
↓
踏み台1
↓
踏み台2
↓
内部サーバ
scpでも利用できる
ファイル転送時にも利用できます。
$ scp -o ProxyJump=bastion file.txt user@server:/tmp内部サーバへ直接転送できます。
sftpでも利用できる
SFTPも同様です。
$ sftp -o ProxyJump=bastion user@server運用が非常に楽になります。
公開鍵認証との組み合わせ
実務では公開鍵認証と組み合わせることが一般的です。
例えば以下です。
- 管理PC → 公開鍵認証
- 踏み台サーバ → 公開鍵認証
- 内部サーバ → 公開鍵認証
安全性と利便性を両立できます。
クラウド環境での利用
AWSやAzureでは非常によく利用されます。
構成例です。
Internet
↓
Bastion Host
↓
Private Subnet
↓
EC2
内部サーバを外部公開せずに運用できます。
踏み台サーバ側の設定
通常は特別な設定は不要です。
ただし以下を確認します。
AllowTcpForwarding yesOpenSSHの標準設定では有効な場合が多いです。
ProxyJumpが利用できない場合
古いOpenSSHでは対応していません。
バージョン確認です。
$ ssh -VOpenSSH 7.3以降が推奨です。
よくあるトラブル
踏み台サーバへ接続できない
まず踏み台サーバ単体へ接続できるか確認します。
$ ssh bastion内部サーバへ接続できない
ルーティングやファイアウォール設定を確認します。
公開鍵認証が失敗する
authorized_keysや秘密鍵設定を確認します。
デバッグ方法
詳細ログを表示します。
$ ssh -v -J bastion user@server接続過程を確認できます。
ProxyJumpを利用するメリット
- 接続手順を簡略化できる
- 運用ミスを減らせる
- SSH設定ファイルと相性が良い
- 複数サーバ管理が楽になる
- クラウド環境との相性が良い
現在のOpenSSH運用では非常に便利な機能です。
実務で推奨される構成
- 踏み台サーバ利用
- 公開鍵認証
- rootログイン禁止
- 接続元制限
- ProxyJump利用
多くの企業環境で採用されています。
まとめ
ProxyJumpは、踏み台サーバ経由のSSH接続を簡単に実現するOpenSSHの便利な機能です。
従来のように踏み台サーバへログインしてから再接続する必要がなくなり、管理効率を大幅に向上できます。
SSH設定ファイルと組み合わせれば、多数のサーバを管理する環境でもシンプルな運用が可能になります。
クラウド環境や企業ネットワークで踏み台サーバを利用している場合は、ぜひProxyJumpを活用してみましょう。





