SSH構成の個々のホストにのみ一致するキーワードを適用する

SSH構成の個々のホストにのみ一致するキーワードを適用する

SSH経由で接続できるホストがあります。場合によっては、同じネットワーク上にあり、ネットワークに直接SSHを介して接続でき、時には同じネットワーク外にあるプロキシを使用する必要があります。

プロキシサーバーを介したSSHは直接接続よりはるかに遅いので、直接接続を試み、失敗した場合にプロキシにフォールバックするようにSSH構成を設定したいと思います。

現在の構成は次のとおりです。

    Host proxy_server
    User user
    Port port
    Hostname some_domain

    Host target_host
    User user
    Port port
    Hostname ip_addr_of_host
    Match exec not_inside_network
    ProxyCommand ssh -W %h:%p proxy_server

これtarget_hostは私の構成ファイルの最後の項目ですが、not_inside_network構成ファイル内の無関係なサーバーへのSSH接続によって呼び出されます。どのようにMatchこのサーバーにのみ適用できますか?

ベストアンサー1

Matchと比較できますHost。他のオプションと同様に、ホストのサブセットとして存在しません。

ただし、一致に対して複数の条件を指定できます。これは、短絡されたANDのように動作するようです。したがって、これが可能で効果があるはずです。

Match host target_host exec not_inside_network
    ProxyCommand ssh -W %h:%p proxy_server

このルールは SSH を使用するたびに確認されます。ただし、「target_host」と一致しないホストの場合、一致はすぐに失敗し、次MatchまたはHostキーワード(存在する場合)に移動します。ホストが「target_host」の場合にのみ実行が行われます。これにより、ステートメントの真実性によってProxyCommandが呼び出されるかどうかが決まります。

発生するロジックを表示するには、-vvvを使用して実行してください。 debug3でいくつかの一致チェックを確認する必要があります。

おすすめ記事