ファイルから読み取ったホスト名の SSH 設定

ファイルから読み取ったホスト名の SSH 設定

設定は次のとおりです。

  • ローカルPCそこから ssh で接続したいのですが…
  • ゲートウェイノードgatewayこれは、SSH で接続するためだけに使われる中間ノードです。
  • フロントノードfront、再び中間ノード、最終ノードに ssh で接続するために必要なもの…
  • 計算ノード実際に使いたいノードは

直接入力できるようにローカルの SSH 構成を設定したいと思いますssh compute

問題:gatewayおよびとは対照的にfront、コンピューティング ノードのホスト名は静的ではありません (つまり、1 日に複数回変更される可能性があります)。コンピューティング ノードの名前 (つまり ) を出力する のcompute_node_hostname.shスクリプトがあります。これを構成でどのように使用すればよいでしょうか?frontnode339

コンピューティング ノードがハードコードされた次の単純な構成は機能します。

Host gateway front compute
    User …
    IdentityFile ~/.ssh/id_rsa

Host front
    HostName front
    ProxyJump gateway

Host compute
    HostName node339
    ProxyJump front

制約:RemoteCommand私の設定では使えない

答え1

「ProxyJump」は「ProxyCommand」のよりスマートなバージョンであることを思い出してください。CLI で指定されたオプションをコピーする追加作業を行いますが、基本的には次のものと同じです。

Host compute
    ProxyCommand ssh -W %h:%p front

ここで%h、および は、%p要求されたホスト名とポートに自動的に展開されます。

したがって、動的ホスト名を使用するには、%hパラメータを置き換えます。

Host compute
    ProxyCommand ssh -W $(compute_node_hostname.sh):%p front

注意: これは、異なるホストキーを持つノードではうまく動作しません。リモート ネットワーク上に既に存在する別のホストを介して接続しているため、このホップのホストキー検証を無効にするだけで安全です。

関連情報