ProxyJumpを使用したジャンプ・ホストを介したアクセス
SSHエージェント転送により、クライアントは、チェーン内の各サーバーに秘密キーをコピーせずに、キー・ベースの認証を使用して、あるサーバーから次のサーバーに接続できます。 リモート・サーバーに対する適切な権限を持つユーザーは、エージェントをハイ・ジャックして、認証を必要とせずに他のシステムに接続できるため、このアプローチは適切なセキュリティ・プラクティスとはみなされません。
要塞ホストおよびジャンプ・ホストを使用してリモート・サーバーへのアクセスを構成するには、OpenSSHクライアントでProxyJump
オプションを使用することをお薦めします。 ProxyJump
機能は、SSHトンネルまたはポート・フォワードと同様に機能し、ジャンプ・ホストを介してすべてのトラフィックを直接プロキシします。 ポート転送とは異なり、ProxyJump
オプションはサーバー側の構成を必要としないため、ジャンプ・ホストへのSSHアクセスのみが必要です。
ProxyJumpの構成
ジャンプ・ホストは、$HOME/.ssh/config
ファイルで構成されます。 次の例では、jumphost.example.com
のジャンプ・ホストが内部ネットワークに接続され、internal.example.com
にあるホストにジャンプします:
#File $HOME/.ssh/config with example of ProxyJump configuration
Host myjumphost
HostName jumphost.example.com
Host myremotehost
HostName internal.example.com
ProxyJump myjumphost
前述の$HOME/.ssh/config
ファイルを使用してジャンプ・サーバー経由でリモート・ホストに接続するには、次のコマンドを実行します:
ssh myremotehost
アドホック・ベースでリモート・ホストに接続していて、ProxyJump設定が$HOME/.ssh/config
ファイルで構成されていない場合は、次のコマンド・オプションを使用して、必要なジャンプおよびリモート・ホストの詳細を指定できます:
-
ssh -J
の使用-J
フラグは、コマンドラインでProxyJump情報を指定するために使用します。 たとえば:ssh -J jumphost.example.com internal.example.com
-
ssh -o
の使用-o
フラグは、$HOME/.ssh/config
ファイルで使用される形式でssh
コマンドにオプションを渡すために使用できる、より一般的なメソッド(ProxyJump構成に限定されない)を提供します。 たとえば:ssh -o 'ProxyJump=jumphost.example.com' internal.example.com
詳細は、「ホストのSSHクライアント構成オプションの設定」およびssh(1)
およびssh_config(5)
のマニュアル・ページを参照してください。