私はSSHプロキシサーバー、別名ジャンプホストというアイデアを思いつき、それを使ってすべてのサーバーに接続しようとしていました。"隠れた"サーバー。基本的には次の設定になっています。ここではホスト名ではなく 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
。
答え1
上記の例では、再帰的にすべての接続でプロキシ コマンドが使用され、別のプロキシ コマンドを使用した ssh が再び使用されます。プロキシを DOS 攻撃する良い方法です。
プロキシをリストから除外し、-F /dev/null
プロキシ コマンドの設定を無視するか、プロキシ ssh のプロキシ コマンドだけを無視する必要があります。
ProxyCommand ssh -oProxyCommand=none my_user@proxy_ssh.example.com netcat -w 120 %h %p
答え2
プロキシ コマンドをオーバーライドするジャンプ ホストの設定にエントリを追加します。
Host proxy_ssh.example.com
ProxyCommand none
それ以外の場合は、プロキシ コマンドを使用してジャンプ ホスト自体にアクセスしようとします。