Список импортированных подключений доступен из самого приложения, а не из папки внутри Application Support. OpenVPN Connect для macOS предоставляет флаги командной строки, которые запрашивают собственное хранилище профилей, то есть ответ берётся из той же модели, которую использует GUI. Поэтому документированный список лучше любой папки, найденной при просмотре. Это также объясняет, почему папка не является его заменой.

Команда читает небольшую запись для каждого импортированного профиля: идентификатор, отображаемое имя, хост, тип профиля, сохранённое имя пользователя и любое переопределение сервера. Всё остальное о подключении живёт за этой записью. Запись и есть список, и он намеренно узок.

До чего на самом деле дотягиваются флаги CLI

Руководство по командной строке для Mac описывает --version и --list-profiles применительно к исполняемому файлу OpenVPN Connect. Путь в документации является заполнителем, и его нужно заменить бинарным файлом внутри установленного пакета приложения. Возьмите этот путь в кавычки, потому что имена пакетов приложений обычно содержат пробелы.

Этот бинарный файл — не openvpn из Homebrew. Это разные программы с разными флагами, и запуск справки клиента сообщества в ответ на вопрос о Connect даёт уверенно неверный ответ.

Выполните запрос в контексте пользователя, чьи профили вы хотите проверить. Хранилище профилей — это состояние каждого пользователя, поэтому оболочка администратора может увидеть другой список или вообще ничего. Если список пуст, а GUI явно показывает подключение, это несоответствие — первое, что нужно проверить.

Читайте запись, а не только имя

Перечисленные поля существуют, чтобы различать похожие записи. Два профиля могут иметь одно отображаемое имя и всё же указывать на разные хосты, и именно идентификатор отличает их, когда вы записываете нужный. Записывайте ID рядом с именем, а не вместо него.

Поле типа сообщает, как профиль аутентифицируется: автоматический вход, привязан к пользователю или привязан к серверу. Эта классификация объясняет, какие учётные данные запросит приложение и может ли подключение начаться без присутствия человека.

Имя хоста и переопределение сервера — это факты маршрутизации. Знакомое имя плюс переопределение на staging-хост — это другое подключение, чем то же имя без переопределения, и разницу показывает только запись. Сравните переопределение, прежде чем сравнивать что-либо ещё. Это поле чаще всего остаётся незамеченным при ручном пересоздании профиля.

Почему папка хранилища — плохая замена

Каталог в Application Support — это приватное хранилище, а не документированный интерфейс. Его структура может меняться между выпусками, а файлы внутри имеют смысл только для приложения, которое их записало.

Копирование этой папки на другой Mac переносит файлы, но не контекст, от которого они зависят. Записи Keychain, зарегистрированный пользователь и собственная отчётность приложения разделены, поэтому скопированная папка может выглядеть на месте и всё равно не подключиться. Миграция, которая выглядит завершённой и не подключается, хуже той, которая отказывается начинаться.

Относитесь к папке как к резервной копии неизвестной ценности, а не как к формату миграции. Если нужно перенести подключение, переносите исходный профиль, выданный сервером, а не кусок состояния другой установки.

Чего список не может вам сказать

Список не экспортирует переносимый файл .ovpn и не возвращает учётные данные или сертификаты, которые хранит приложение. Он сообщает, что профиль существует и на что он нацелен. Как воссоздать его в другом месте — отдельный вопрос с отдельным ответом.

Для миграции получите утверждённый исходный профиль или текущую загрузку с сервера, затем импортируйте его через поддерживаемый рабочий процесс. Документированный флаг импорта принимает исходный файл; направление экспорта не является частью этого интерфейса.

Держите вывод списка чистым

Вывод может содержать внутренние имена хостов и идентификаторы учётных записей. Относитесь к нему как к любому другому экспорту списка и скрывайте поля хоста и пользователя перед публикацией снимка экрана.

Проверка не требует переключателя импорта или пароля. Если полученная команда запрашивает учётные данные только для перечисления профилей, остановитесь и проверьте документированные флаги. Список — это запрос только для чтения, и таким он должен оставаться.

Похожие статьи