1.7. SSH ジャンプホストを介したリモートサーバーへの接続
ローカルシステムから中間サーバー (ジャンプホストとも呼ばれます) を介してリモートサーバーに接続できます。ジャンプサーバーは、さまざまなセキュリティーゾーンのホストをブリッジし、複数のクライアントサーバー接続を管理できます。
前提条件
- ジャンプホストでローカルシステムからの SSH 接続に対応している。
- リモートサーバーがジャンプホストからの SSH 接続を受け入れる。
手順
ジャンプサーバーまたは複数の中間サーバーを経由して一度に接続する場合は、
ssh -J
コマンドを使用してジャンプサーバーを直接指定します。次に例を示します。$ ssh -J <jump-1.example.com>,<jump-2.example.com>,<jump-3.example.com> <target-server-1.example.com>
ジャンプサーバーのユーザー名または SSH ポートが、リモートサーバーの名前およびポートと異なる場合は、上記のコマンドのホスト名のみの表記を変更します。以下に例を示します。
$ ssh -J <example.user.1>@<jump-1.example.com>:<75>,<example.user.2>@<jump-2.example.com>:<75>,<example.user.3>@<jump-3.example.com>:<75> <example.user.f>@<target-server-1.example.com>:<220>
ジャンプサーバーを介してリモートサーバーに定期的に接続する場合は、ジャンプサーバーの設定を SSH 設定ファイルに保存します。
ローカルシステムの
~/.ssh/config
ファイルを編集してジャンプホストを定義します。以下に例を示します。Host <jump-server-1> HostName <jump-1.example.com>
-
Host
パラメーターは、ssh
コマンドで使用できるホストの名前またはエイリアスを定義します。値は実際のホスト名と一致可能ですが、任意の文字列にすることもできます。 -
HostName
パラメーターは、ジャンプホストの実際のホスト名または IP アドレスを設定します。
-
ProxyJump
ディレクティブを使用してリモートサーバーのジャンプ設定を、ローカルシステムの~/.ssh/config
ファイルに追加します。以下に例を示します。Host <remote-server-1> HostName <target-server-1.example.com> ProxyJump <jump-server-1>
ローカルシステムを使用して、ジャンプサーバー経由でリモートサーバーに接続します。
$ ssh <remote-server-1>
このコマンドは、前の設定ステップを省略したときの
ssh -J jump-server1 remote-server
コマンドと同じです。
関連情報
-
システム上の
ssh_config(5)
およびssh(1)
man ページ