二つの SSH エイリアス、一つのサーバー:直接 VPN か踏み台ホスト
承認済みの VPN 経路と承認済みの踏み台経路を別々のエイリアスとブックマークとして保ち、どの経路が許可されているかをショートカットに推測させないようにします。
同じプライベートサーバーが、承認済みの VPN 経由と承認済みの踏み台経由の両方で応答しており、あなたは推測するショートカットではなく、それぞれに一つの Emacs ブックマークを持ちたいと考えています。判断すべきはどちらの経路が優れているかではなく、目の前の作業に対してどちらの経路が許可されているかです。両方を明示し、別々に名前を付け、どちらを選んだかをファイル名に語らせてください。
条件その一:どの経路が承認されていますか。
踏み台ホストは VPN 要件の自動的な代替ではなく、VPN は承認済みの踏み台を飛ばすための許可証でもありません。自分のアカウントとこのデータに対して、どの経路が許可されているかを尋ねてください。両方が許可されていれば選択肢があり、片方だけであればブックマークの組は一項目だけになります。その答えはデータの所有者から来るものであり、今日たまたま動いている経路から来るものではありません。
インシデントの最中にはこの区別がすぐに消えてしまうので、答えを書き留めてください。
どちらの経路にも、それぞれ独自のアカウントと ID の設定が必要です。一方の経路で機能する共有エイリアスが、ネットワークとは無関係な理由でもう一方では失敗することがあります。
条件その二:それぞれの経路を区別して名付けられますか。
SSH の設定は、一つのアドレスに対して二つのホストエイリアスを持てますが、それぞれプロキシの挙動は異なります。具体的なブロックは、ほとんどのオプションでは最初に得られた値が優先されるため、広いワイルドカードより前に置いてください。
Host proj-direct proj-bastion
HostName 10.60.0.21
User analyst
ControlPath none
Host proj-direct
ProxyJump none
Host proj-bastion
ProxyJump gw.example.com
上のアドレスは例なので、チームが文書化しているものに置き換えてください。踏み台のエイリアスには踏み台側の承認済みアカウントも必要で、通常は踏み台自体に二つ目の Host ブロックを意味します。ここで接続の共有を無効にしておくと、再利用された多重化接続が観察しようとしている経路変更より長く生き残ることがあるため、経路の比較が正直に保たれます。
そうすれば、リモートのファイル名は区別されたまま読める形で残ります。
/ssh:proj-direct:/srv/project/README.md
/ssh:proj-bastion:/srv/project/README.md
条件その三:エディターは違いを理解しているか。
TRAMP はそれら二つのファイル名を別々の宛先として扱いますが、これはまさに望んでいたことです。どちらの経路を使うかが分かる名前でそれぞれをブックマークし、一つの宛先の意味を書き換えるのではなくブックマークを開き直してください。二つのブックマークは比較も見える形にし、両方を開いて設定を何も変えずにどちらが失敗するかを見られます。
ProxyJump が関わる場合、関係する接続では TRAMP の接続共有を切っておく必要があるため、開く前に tramp-use-connection-share を nil に設定するという設定に注目してください。これは互換性のための設定であり、欠けた経路の修正ではなく、許可されていない経路を許可するものでもありません。TRAMP の FAQ は、これらの名前を短くするためのサポートされた方法としてブックマークを文書化しています。
経路を黙って変えるブックマークは、ブックマークがないよりも悪いものです。
ネットワークアイコンが何も証明しない理由
NetworkManager の全体状態値 70 は、マシンにグローバルな接続性があることを意味します。それは VPN プロファイルを名指ししておらず、通常の Wi-Fi でも満たされます。必要な経路を正確に運ぶプライベート専用トンネルは、その集約値を変えないことがあります。だからこそ、アイコンに紐づいたショートカットは、一度も試していない経路について準備完了を報告しうるのです。
全体の状態ではなく、特定の接続の状態を読んでください。
何かを自動化するなら、名前付きの接続に問い合わせ、次にその順序で宛先の経路、リゾルバーの応答、SSH の到達性を確認してください。これらのどれもが前の段階が成功している間に失敗しうるので、それらを一つの真偽値にまとめることが、自動化が一度も使っていない経路について成功を報告してしまう理由です。
経路が機能しなくなったときにすべきこと
既存の TRAMP セッションは経路変更より長く生き残り、次の書き込みで失敗することがあるため、調査の前にバッファーを保存してください。サポートされた後片付けで閉じ、ブックマークを開き直し、サーバーが落ちていると決めつけるのではなく二つの経路を比較してください。
踏み台と宛先の両方でホスト鍵の検証を有効にしておいてください。
別の経路であっても、予期していなかったサーバー鍵を受け入れる権利は得られず、承認されていない経路が許容されるわけでもありません。どちらも、あなたが下していた判断とは別の判断です。