既定の SOCKS 経路から 1 台の SSH ホストを除外する
ワイルドカードの既定ルールより前に ProxyCommand none の例外を置き、要求したホストの実際の OpenSSH 設定を確認します。
OpenSSH の設定が既定で SOCKS コネクタを使っている場合は、その広いルールの前に名前付きの例外を置きます。
Host internal.example
ProxyCommand none
Host *
ProxyCommand nc -X 5 -x proxy.example:1080 %h %p
この例は SOCKS5 向けの OpenBSD nc オプションのインターフェースを使っています。ssh internal.example で接続すると例外が選ばれ、残りのホストは既定のコネクタを受け取ります。許可された公開 SSH 宛先には、SOCKS5 プロキシ一覧のアカウント不要の項目が既定のプロキシアドレスを提供できますが、実際の各ホストと SSH ポートを許可している場合に限られます。意図した内部向けの例外はそのまま残してください。
順序が重要になるのは、OpenSSH があるパラメータについて最初に得た値を使うからです。例外は、一致する既定値が ProxyCommand を供給するより前に現れる必要があり、Include ファイル経由で読み込まれる既定値も同じです。
特定の呼び出しに対する実際の設定は、次のコマンドで確認できます。
ssh -G internal.example
ホストのパターンは、SSH の呼び出しに使った名前と照合されます。コマンドが HostName で internal.example を指す別名を使っている場合は、その別名にも意図した例外を与えてください。そうすれば規則は実際の設定検索に結び付いたままになり、DNS 上で同等の名前が同じブロックを選ぶと決めつけずに済みます。