プロキシ SSH 接続

プロキシ SSH 接続

以前に質問されていたら申し訳ありませんが、現在、RDP ゲートウェイと同じように SSH 接続を確立できるソリューションを探しています。ご存じない方のために説明すると、RDP ゲートウェイを使用すると、基本的に別のサーバーを介して RDP 接続をプロキシできます。リモート デスクトップは RDP ゲートウェイ サーバーで透過的に認証し、そこからエンドポイント サーバーへの接続を確立します。これにより、プライベート IP アドレスまたは内部 DNS 名でエンドポイント サーバーを参照できるようになり、露出が制限されます。

現在考えているのは、SSH 経由でポート転送を設定して、トンネル プロキシの背後でアクセスする必要があるすべてのサーバーが、中間点サーバーによって転送される別のポート上にあるようにすることです。ただし、これは最適な解決策ではないように思われるため、これを実行するより良い方法があるかどうかを知りたいと思っています。

答え1

SSH用語では、要塞ホストまたはジャンプサーバー- 着信 SSH 接続を受け入れ、そこから管理する実際のシステムに SSH 接続できる単一のマシン (通常は DMZ 内)。

                                                                             ==> | Server1 |
 _________                             ___________                         /      ---------
| user PC |   ===(SSH on port 22)===> | jump host |  ===(SSH on port 22)== ==+>  | Server2 | 
 _________                             ___________                         \      _________
                                                                             ==> | Server3 |

多くの場合、セキュリティを強化するために、ジャンプ サーバーは二要素認証を要求したり、VPN 接続を確立した後にのみ着信 SSH セッションを受け入れたりします。

最初にジャンプホストにログオンし、コマンドプロンプトから2番目のSSHセッションを開始する代わりに、OpenSSHでは1つのコマンドでそれを構成できます。

私は、各ホストの短いエイリアスを使用して、すべての設定を明示的に設定することを好みます~/.ssh/config。 そうすれば、コマンドライン フラグを使用する必要がなくなり、単に less と入力して使用すればssh Destination完了します。

Host jumphost
    Hostname jumphost.example.com
    User serverfault
    ForwardAgent yes
    AddKeysToAgent yes
    UseKeychain yes                                  # Specific to OS X 
    IdentityFile ~/.ssh/id_rsa.jumphost

Host server1
    Hostname server1.int.example.com
    User hbruijn 
    ForwardAgent yes
    AddKeysToAgent yes
    UseKeychain yes                                  # Specific to OS X
    IdentityFile ~/.ssh/id_rsa.int.example.com
    ProxyJump jumphost

ProxyJumpは比較的新しい設定で、 よりも直感的に使用できると思いますProxyCommand。 はssh server1まさに必要なことを実行します。まず、 を[email protected]最初のホップとして使用してセッションを作成し、そこから、オプションで別の SSH キーと別のユーザー名を使用して次のホップにトンネルします[email protected]

コマンドラインから ProxyJump コマンドを直接使用することもできます。

ssh -J [email protected] [email protected]

別のアプローチについては、このQ&A

答え2

標準的な解決策は、IPv6 (および/または VPN) を導入して、このような回避策を最初から回避することですが、現在それができない場合は、ジャンプ ボックス、要塞ホスト、または同様の用語で呼ばれます。これは、ユーザーが ssh でログインし、そのボックスがネットワーク アクセスできる内部ホストにさらに ssh で接続できるように設置するマシンです。このsshコマンドには、ジャンプ ホスト経由での接続を自動化するコマンド ライン オプションもあります。

     -J destination
             Connect to the target host by first making a ssh connection to
             the jump host described by destination and then establishing a
             TCP forwarding to the ultimate destination from there.  Multiple
             jump hops may be specified separated by comma characters.  This
             is a shortcut to specify a ProxyJump configuration directive.
             Note that configuration directives supplied on the command-line
             generally apply to the destination host and not any specified
             jump hosts.  Use ~/.ssh/config to specify configuration for jump
             hosts.

関連情報