すべての欄が埋まって見えるのに保存ボタンは灰色のままで、ゲートウェイはまだ一つのパケットも受け取っていません。何も送信されていないので、何も拒否されていません。このコントロールは、目の前のプロファイルについてローカルエディターが検証できる内容を反映しています。これはアカウントが機能するかどうかより狭い問いであり、ネットワークなしで答えが出ます。

ボタンはローカル検証を反映している

無効になったコントロールにはローカルの原因が複数あり、外から見るとどれも同じに見えます。必須の参照が欠けている、参照先のファイルがエディターを実行しているユーザーにとって読めない、選択した方式を扱うプラグインがまったくインストールされていない、といった可能性があります。プロファイル自体の権限問題も、空欄と同じ灰色のボタンを生みます。

何かを編集する前に検証メッセージを読みましょう。メッセージは問題の欄を名指ししているので、フォームを推測するより、エディターがすでに書いた一文を読むほうが速いのです。

欄を選択した方式に合わせる

必要な入力はダイアログの配置ではなく、接続方式から決まります。証明書の識別情報にはクライアント証明書と、対応する秘密鍵へのアクセスが必要で、さらにサーバーを検証する手段も必要です。アカウント方式には別の要件があり、サーバーの検証も必要です。両方を同時に求める配備もあり、冗長に見えるフォームが正しいことはよくあります。

運用者が提供する対応済みのプロファイルと登録手順を使い、勘で欄を組み立てないようにします。クライアント証明書を CA 欄に入れる、公開証明書を秘密鍵として扱う、アカウントのパスワードを秘密鍵のパスフレーズ欄に入力する、といった間違いはよくあり、どれも保存を静かに拒否する結果になります。

各参照を、本来あるべきオブジェクトとして確認します。正しい拡張子のファイル名は、読みやすさや所有権、この識別情報に属するかどうかを何も証明しません。root しか読めない秘密鍵はデスクトップセッションでは読み込まれず、エディターはそれを権限エラーではなく検証失敗として報告します。

ボタンを押せるようにするためだけに方式を変えると、プロファイルの意味が変わります。でたらめなパスワードを入力してから戻すと、誰も望まない保存値が残ることがあります。さらに、本当に不足していた要件を隠してしまい、それが一時間後に接続失敗として戻ってきます。

保存されたシークレットとエージェントのシークレットを分ける

保存されたプロファイルに属する情報もあれば、アクティブ化の際に対話的に提供される資格情報もあります。NetworkManager の接続 API は、接続の検証、シークレットの検証、シークレットの検出を別々の操作として扱っており、そのドキュメント自体が、ヒントだけでは接続に必要なすべてを判断できない場合があると警告しています。

この区別が、空のパスワード欄を説明します。シークレットエージェントが値を提供するため正しい場合もあれば、この接続に利用できるエージェントがないため誤っている場合もあります。シークレットに付いたフラグが、システム所有か、エージェント所有か、まったく保存しないかを決めます。

ライフサイクルに合ったフラグを選びます。サインイン後に解錠されるデスクトップのキーリングは、ログイン前に起動するサービスには利用できないため、対話的に動作するプロファイルが、プロファイルを変更しないまま起動時に失敗することがあります。その失敗は壊れたプロファイルに見えますが、実際にはスケジュールの不一致です。

保存に成功したからといって、意図したエージェントが次の問い合わせに応答する証拠にはなりません。ダイアログを黙らせるためだけに、すべてのシークレットをシステムが読めるファイルにコピーするのではなく、アカウントと秘密鍵の所有権を保ってください。

後の段階は分けて読む

プロファイルが保存されたら、シークレットの値を求めずに、識別子、エンドポイント、プラグイン、方式を調べます。運用者が提供するインポートは役立つことがありますが、インポートは独自の対応機能を持つ独立したパーサーなので、インポートの拒否は保存の拒否と同じ失敗ではありません。

そのうえで初めて、意図したマネージャーとそれが期待するアカウントを通じてアクティブ化します。サーバー識別情報のエラー、拒否されたアカウント、欠けているルート、拒否されたアプリケーション権限はいずれも後の段階に属し、それらをエディターの問題として報告すると、調査が誤った方向に向かいます。

nmcli -f NAME,UUID,TYPE connection show
nmcli connection show "Corp VPN" | grep -E "vpn\.|802-1x"

文書化された入力で保存が無効のままなら、エディターのバージョン、プラグインのバージョン、選択した方式、正確なローカルエラーを記録します。エディターが表現できない正当なプロファイルを名指しする報告は役に立ちますが、ボタンを一瞬押せるようにしただけの無作為な資格情報の羅列は役に立ちません。

関連記事