Mac のロックを解除して VPN クライアントを開くと、トンネルが始まる前からパスワードシートが現れます。ゲートウェイのパスワードを入力すると、拒否されるか、少ししてシートが再び表示されます。その後もスリープからの復帰、ログアウト、クライアントの更新のたびに尋ねてきます。このシートは VPN サーバーが認証情報を求めていることはまれで、通常は macOS がローカルの記録を読み取り、ロック解除、変更する許可を求めているのであり、パスワードはその記録の所有者のもので、VPN アカウントのものではありません。

シートをその背後にある主体と突き合わせる

四つのプロンプトはほぼ同じに見えますが、ゲートウェイに関係するのは一つだけです。文言、アクセスを要求するプロセス、下に示される項目が、どれなのかを教えてくれます。

What the sheet saysWhose password it wantsWhat it does not do
Enter the password for the login keychainThe local keychain password, normally your Mac login passwordIt does not authenticate you to the VPN server
An app wants to use confidential information stored in your keychainApproval for that app to retrieve one itemIt does not grant privileges at the gateway
macOS wants to make changes, and asks for administrator authorizationAn admin account on this Mac, for the named settingIt does not change the VPN account password
The client itself asks for a username and password to connectThe remote account, certificate or profile credentialIt does not unlock anything local

ローカルアクセスについてのダイアログは、サーバーについて何も証明しません。ゲートウェイの拒否はベンダーのエラーテキストとともにクライアント内に表示され、キーチェーンのロック解除を促すシステムシートとしては表示されません。逆も同じくらいよくあります。キーチェーンのシートにゲートウェイのパスワードを入力すると、記録はロックされたままになり、失敗した試行が一度追加されます。

ダイアログは所有者、保管場所、操作を示す

キーチェーンのプロンプトは取得についてであり、遠くの何かへの認証ではありません。Apple による要求ダイアログの説明は限定的です。「一度だけ許可」「常に許可」「許可しない」は、そのアプリが保存済みの項目を読めるかどうかを制御します。どれもゲートウェイでの権限を与えず、サーバーがあなたのパスワードをどう見るかも変えません。

要求元が更新直後のクライアントの場合、再承認は想定内です。新しいビルドは項目のアクセス制御リストと一致しなくなるため、macOS は再び尋ねます。診断中は「一度だけ許可」と答えてください。「常に許可」はそのアプリへの恒久的な許可であり、想定していないヘルパープロセスには誤った答えです。バイナリがインストールしたクライアントでない場合は拒否し、ベンダーに確認してください。

管理者の承認を求めるプロンプトは第三の種類です。変更されるシステム設定や保護された保管場所を示し、求める資格情報はこの Mac の管理者アカウントです。すべての個人的なキーチェーン項目に必要なわけではなく、ネットワーク構成の背後にある項目には通常必要です。構成はシステムに属し、あなたのログインセッションには属さないからです。

Mac の VPN パスワードはどこに住めるか

キーチェーンは可能な保管場所の一つであり、保管場所の定義ではありません。システム設定で作成した組み込みの VPN 構成は、管理されたシステム設定としてネットワーク構成とともに資格情報を保持します。サードパーティのクライアントは通常、ログインキーチェーンに項目を保持します。サービス名をキーにした汎用パスワードか、サーバー、プロトコル、アカウントをキーにしたインターネットパスワードです。新しいアプリの多くは代わりにデータ保護キーチェーンを使い、その項目はキーチェーンアクセスに決して現れません。

人はキーチェーンアクセスで VPN の名前を探し、何も見つからず、パスワードは保存されていないと結論づけます。Apple の TN3137 の注記は、キーチェーンの実装が複数あると述べています。その一覧にないのは正常であり、項目が壊れている証拠ではありません。

記録の種類も互換ではありません。アカウントのパスワード、秘密鍵のパスフレーズ、クライアント証明書、IPsec の共有シークレットはそれぞれ異なる形で失敗し、異なる場所で修復されます。保存済みのパスワードを入力し直しても、拒否された証明書には何の効果もありません。Mac が管理に登録されている場合、プロファイルが別の所有者です。VPN ペイロードは資格情報を運び、更新時に再適用できるため、ローカル項目の削除は管理者が変更するまで一時的です。

ログインパスワードとキーチェーンのパスワードがずれるとき

ログインキーチェーンは通常 Mac のログインパスワードを使うため、両者がずれることがあります。管理者が別のアカウントからパスワードをリセットしたり、復旧の流れやディレクトリの変更があったりすると、キーチェーンは古い値にロックされたままになり、macOS は今設定していないパスワードを求めます。

ログイン時に、システムがキーチェーンをロック解除できなかったという警告が出ることがあります。更新には古いパスワードが必要で、覚えていれば問題なく、覚えていなければ役に立ちません。正直な修復は二つあります。キーチェーンアクセスの「編集」→「キーチェーン“login”のパスワードを変更」か、必要な資格情報を入力し直した新しいログインキーチェーンです。二つ目の選択肢は保存済みの項目を破壊します。

一つの VPN が古い資格情報を拒否するからといってキーチェーン全体をリセットしないでください。無関係なアカウントが消えるうえ、項目は特定できないままです。

一つのコマンドでローカルかリモートかの問いに決着がつきます。キーチェーンに項目を直接尋ねてください。

security find-internet-password -s vpn.example.com -a [email protected] -g
security find-generic-password -s "Client Name" -a [email protected] -g

クライアントの設定にあるサーバーとアカウントを使ってください。自分でキーチェーンに尋ねたときに同じ承認シートが出るなら、プロンプトはローカルで、サーバーは傍観者です。そのような項目が存在しないなら、クライアントは想定した場所にパスワードを保存していません。-g フラグはシークレットをターミナルに出力するので、画面共有は避けてください。

クライアントが実際に読む記録を更新する

ゲートウェイでアカウントが変わったなら、まずそこで変更し、次にクライアントの設定から保存済みの記録を更新します。キーチェーン項目を手作業で編集するのは信頼できません。クライアントは別のサービスとアカウントの組を読むかもしれず、管理プロファイルはあなたの編集を上書きします。

古いと思われる項目については、何かを削除する前にサービス、アカウント、プロトコルを突き合わせてください。

security delete-generic-password -s "Client Name" -a [email protected]

別の接続の似た名前の項目を削除することは、よくある自ら招く障害です。削除はローカルに限られます。ゲートウェイのセッションを取り消すことも、デバイス証明書を外すことも、アカウントのパスワードを変えることもありません。

修復が再起動後も残ることを確認する

接続し、スリープから復帰し、ログアウトして再ログインし、一度再起動します。シートが出ないきれいな流れと、期待どおりのアカウントを示すクライアント状態だけが意味のある証拠です。プロンプトが戻る場所で、どの層を逃したかがわかります。更新後なら承認、ネットワーク変更後ならクライアント自身のプロンプト、再起動後なら状態を再適用するプロファイルです。

キーチェーンに再び触れる前に、クライアントのパスワードを記憶する、または常に尋ねる設定を確認してください。一部の構成、特にユーザーごとの認証を使う IKEv2 は、設計上、接続のたびに尋ねます。キーチェーンの修復は役に立ちません。

変更した項目、それを所有していた保管場所、属していたアカウントを書き留めておけば、次のプロンプトを数秒で特定できます。Apple のキーチェーンアクセスの要求ページは、あの 三つのボタンが何を許可するかの参照先です。

関連記事