SSHのネストされたProxyCommandsの仕組みの私の精神的なモデルは実際に壊れています。
次のsshコマンドがあり、必要な方法で動作します(sshを介してjump.mydomain.comに移動し、次にjump.mydomain.comにアクセスすると、ssh(ProxyCommandを使用)してserver.remote.comに接続します。
ssh -t [email protected] \
ssh -o "ProxyCommand='cloudflared access ssh --hostname %h'" \
[email protected]
ローカルの~/.ssh/configファイルにいくつかのルールを設定して入力できる必要があると思います。
ssh [email protected]
これらのいくつかのステップを「正しく動作させる」ようにしますが、そのルールが何であるかはわかりません。
私の質問は重複していると思います。マルチホップおよびプロンプト認証のためのProxyCommand 認証を要求するメッセージが表示されますが、この質問では、プロキシコマンドはすべて単純ホップのためのものであり、私のプロキシコマンドがチェーンの両端に収まらないようです。
答え1
これは、ProxyJumpsとProxyCommandsがどのように機能し、どのようにやり取りするかについての精神的なモデルの欠如には役に立ちませんが、質問に記載されている特定のタスクを実行する方法を見つけました。
この質問をした後、次のようにネストされたSSHがProxyCommandの一部である代替SSHコマンドを思い出すことができることに気づきました。
ssh -o "ProxyCommand=ssh [email protected] \
cloudflared access ssh --hostname %h" \
[email protected]
これで、~/.ssh/configファイルに入れることができるProxyCommandがあります。
Host server.remote.com
ProxyCommand ssh [email protected] cloudflared access ssh --hostname %h
構成ファイルに ProxyCommand を挿入すると、次のことができます。
ssh [email protected]
現在の問題に対する解決策を見つけたことは嬉しいですが、次の問題を解決するためにどのように私の思考パターンが改善されたかはわかりません。