1.6. 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コマンドと同じです。