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)のマニュアル・ページを参照してください。