Mac снова и снова просит пароль VPN: связка ключей или учётная запись?
Mac может запрашивать пароль связки ключей входа, пароль администратора или саму учётную запись VPN. Определите владельца диалога и исправьте нужное хранилище.
Вы разблокируете Mac, открываете клиент VPN, и ещё до запуска туннеля появляется окно с паролем. Вы вводите пароль шлюза, и его либо отклоняют, либо окно возвращается через мгновение. Затем оно снова спрашивает после пробуждения, выхода из системы или обновления клиента. Это окно редко означает, что сервер VPN запрашивает учётные данные; обычно macOS спрашивает разрешение прочитать, разблокировать или изменить локальную запись, и пароль принадлежит владельцу этой записи, а не вашей учётной записи VPN.
Соотнесите окно с той сущностью, которая за ним стоит
Четыре запроса выглядят почти одинаково, и только один касается шлюза. Формулировка, процесс, запрашивающий доступ, и элемент, указанный ниже, подскажут, с каким вы столкнулись.
| What the sheet says | Whose password it wants | What it does not do |
|---|---|---|
| Enter the password for the login keychain | The local keychain password, normally your Mac login password | It does not authenticate you to the VPN server |
| An app wants to use confidential information stored in your keychain | Approval for that app to retrieve one item | It does not grant privileges at the gateway |
| macOS wants to make changes, and asks for administrator authorization | An admin account on this Mac, for the named setting | It does not change the VPN account password |
| The client itself asks for a username and password to connect | The remote account, certificate or profile credential | It does not unlock anything local |
Диалог о локальном доступе ничего не доказывает о сервере. Отказ шлюза появляется внутри клиента с текстом ошибки поставщика, а не как системное окно с предложением разблокировать связку ключей. Обратное столь же обычно: пароль шлюза, введённый в окно связки ключей, оставляет запись заблокированной и добавляет неудачную попытку.
В диалоге указаны владелец, хранилище и действие
Запросы связки ключей касаются извлечения, а не аутентификации где-либо удалённо. Описание Apple узкое: «Разрешить один раз», «Разрешать всегда» и «Запретить» определяют, может ли приложение прочитать сохранённый элемент. Ни один из трёх вариантов не даёт привилегий на шлюзе и не меняет того, что сервер думает о вашем пароле.
Когда запрашивает только что обновившийся клиент, повторное одобрение ожидаемо: новая сборка больше не соответствует списку управления доступом элемента, поэтому macOS спрашивает снова. При диагностике отвечайте «Разрешить один раз». «Разрешать всегда» — это постоянное разрешение приложению и неверный ответ для вспомогательного процесса, которого вы не ждали; откажите и проверьте поставщика, если двоичный файл не тот клиент, который вы установили.
Запрос авторизации администратора — это третья история. В нём указана изменяемая системная настройка или защищённое хранилище, и требуемые учётные данные — учётная запись администратора на этом Mac. Не каждому личному элементу связки ключей это нужно; тем, что стоят за сетевой конфигурацией, обычно да, потому что конфигурация принадлежит системе, а не вашему сеансу входа.
Где может храниться пароль VPN на Mac
Связка ключей — одно из возможных хранилищ, а не определение хранилища. Встроенная конфигурация 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]
Удаление похожего по имени элемента другого подключения — частая самонанесённая авария. Удаление только локальное: оно не отзывает сеанс на шлюзе, не отвязывает сертификат устройства и не меняет пароль учётной записи.
Убедитесь, что исправление переживает перезагрузку
Подключитесь, разбудите Mac, выйдите из системы и войдите снова, затем один раз перезагрузитесь. Чистая последовательность без окна и со статусом клиента, называющим ожидаемую учётную запись, — единственное доказательство, которое считается. То, где возвращается запрос, показывает пропущенный слой: после обновления это одобрение, после смены сети — запрос самого клиента, после перезагрузки — профиль, повторно применяющий состояние.
Проверьте в клиенте настройку запоминания пароля или постоянного запроса, прежде чем снова трогать связку ключей. Некоторые конфигурации, особенно IKEv2 с аутентификацией по пользователям, запрашивают по замыслу при каждом подключении; починка связки ключей не поможет.
Запишите, какой элемент вы изменили, какое хранилище им владело и какой учётной записи он принадлежал, чтобы следующий запрос опознать за секунды. Страница Apple «Запросы доступа к связке ключей» — справочник о том, что разрешают эти три кнопки.