X11 転送はエディターのウィンドウをノート PC に置きますが、プロセスはリモートホストで動き続けています。このずれが罠のすべてです。ローカルのウィンドウを見ながらリモートのプロファイルを編集しており、どちらのマシンが変更を所有しているかを誤解すると、作業中の SSH 接続を切ってしまうことがあります。以下のチェックリストは、何かを保存する前にホストとプロファイルを確定します。各手順には停止条件があるので、早い段階での失敗は安く済みます。

手順 1:プロファイルを所有するマシンを特定する

これから設定するシェルで ID コマンドを実行し、プロンプトから推測せずに答えを読みます。プロンプトのホスト名はシェルが出力した文字列にすぎません。カーネルのホスト名こそが、このチェックリストの残りが信頼する値です。両者が食い違うなら、間違ったマシンにいるか、プロンプトがローカルシェルで飾られています。いったん止まり、続ける前に目的のホストへ再接続してください。

hostnamectl
hostname -f
ip -brief address

次の問いは、そもそもこのマシンが VPN を持つべきかどうかです。ノート PC のクライアントを設定するのとリモートホストのクライアントを設定するのでは、ルートも DNS も障害の起こり方も変わります。プロファイルに触る前にどちらを指すのかを決め、次の担当者が見つけられる場所に判断を書き残してください。

手順 2:プロファイルはラベルではなく UUID で読む

NetworkManager は接続を UUID で識別しますが、名前は誰でも編集・複製できるラベルです。両方を一覧し、本当に意図したエントリを照合してください。何年もかけて複数の VPN プロファイルが取り込まれたホストでは特に重要です。

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show --active
nmcli general permissions

保存済みのエントリとアクティブな接続は別の問いに答えます:前者は存在するものを並べ、後者は今トラフィックを運んでいるものを並べます。権限の行はセッションのローカルポリシーを表すだけで、VPN ゲートウェイがアカウントを受け入れるかは何も語りません。必要なプロファイルが保存一覧にないなら、ここで止めてください。間違ったエントリを編集するのは、編集しないより悪いからです。

UUID を取得したら変数に入れ、以降のすべてのコマンドでその変数を使ってください。コピー&ペーストのミスを丸ごと一類排除でき、記録も再現可能になります。

UUID=$(nmcli -g UUID connection show 'Corp VPN')
nmcli connection edit uuid "$UUID"

手順 3:グラフィカルなエディターが適切な道具かを決める

polkit のプロンプトやシークレットエージェントを必要とするエディターは、ノート PC にウィンドウが現れるだけではそれを得られません。それらの部品はリモートセッションの文脈で動いており、ディスプレイを転送しても転送されません。 エディターが認可やシークレットのエラーで保存できない場合, 問題はディスプレイではありません。

echo "$DISPLAY"
ssh -X you@vpn-host
xauth list

OpenSSH は X11 転送を次のオプションで有効にします -X そしてそれに伴う注意も文書化しています。リモートホストはローカルのディスプレイに到達できるため、これは実際の信頼境界です。信頼済みの転送である -Y はそうした検査の一部を取り除くものであり、既定設定で失敗するアプリの反射的な解決策にしてはいけません。組織がリモート管理の方法を公開しているなら、変種を考案せずにそれを使ってください。多くの場合、コマンドラインのエディターのほうが小さな面であり、より良い答えです。

唯一動く道が次を必要とし -Y その理由を説明できないなら、ここで止めてください。それはセキュリティポリシーの所有者が決めることで、個人のスクリプトに残す回避策ではありません。

手順 4:何かを有効にする前に復旧経路を用意する

VPN の変更は SSH セッションが依存するルートを消すことがあるので、プロファイルを有効にする前に戻り道を用意してください。コンソールアクセス、帯域外の管理アドレス、予定されたロールバックはいずれも該当します。変更がうまくいくという期待は該当しません。

sudo systemctl status NetworkManager
ip route show default
ss -tn state established '( sport = :22 )'

意図したプロファイルだけを有効にし、リモートホストから確認します。既定ルート、SSH の戻り経路、トンネル経由で到達できるはずのリソースを一つです。ノート PC からの確認が成功しても、それはノート PC の経路を試しただけで、リモートホストについては何も分かりません。セッションが切れたら、やみくもに再接続せず復旧経路を使ってください。 プロファイルの保存は有効化ではなく、有効化は検証ではありません.

UUID、変更したプロパティの値、確認に使ったコマンドを記録してください。次にこのホストに触る人には三つすべてが必要で、VPN を直したという要約より記録のほうが価値があります。ロールバックのメモなしで終わるチェックリストは半分のチェックリストです。

関連記事