私は、SSHプロキシサーバーまたはジャンプホストと呼ばれるものを使用して、すべての"hidden"サーバーに接続するというアイデアをいじっていました。だから基本的に私は次の設定をしています。ここでは、ホスト名の代わりに意図的にIPアドレスを使用していることに注意してください。
<client> ---> <proxy_ssh> ---> <192.168.0.*>
私の意図は、それがユーザーに対して可能な限り透過的であるべきだということです。したがって、理想的には、ユーザーは次のコマンドを実行するだけで済みます
# ssh [email protected]
これを機能させるために、次の.ssh/config
を作成しました。
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
Host 192.168.0.*
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
これは正常に機能します。しかし、proxy_ssh
サーバーの背後で動作するネットワークがもっとあるとしたら、ちょっと面倒です。だから私は単にProxyCommand
をHost *
セクションに追加してみましたが、機能しませんでした。
これをエンドユーザーにとってより透過的にしたいと考え、ssh構成を次のように変更し、特定のホスト定義を省略しました。
Host *
ServerAliveInterval 240
Compression yes
ForwardAgent yes
ForwardX11 yes
ProxyCommand ssh my_user@proxy_ssh.example.com netcat -w 120 %h %p
これにより、エンドホストに接続できなくなったという影響がありました。接続がタイムアウトしました。
したがって、私の質問は、すべてのSSH接続がproxy_ssh
ホストを使用するように、これをより透過的にする方法はありますか?
上記の例では再帰的になり、すべての接続でプロキシコマンドが使用されます。このプロキシコマンドも、別のプロキシコマンドでsshを実行します。プロキシをDOSする良い方法。
リストからプロキシを除外するか、-F /dev/null
を使用してプロキシコマンドの設定を無視するか、プロキシsshのプロキシコマンドを無視する必要があります。
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
プロキシコマンドをオーバーライドするジャンプホストの構成にエントリを追加します。
Host proxy_ssh.example.com
ProxyCommand none
それ以外の場合は、プロキシコマンドを使用してジャンプホスト自体にアクセスしようとします。