Как сохранить пароль для Cisco IPSec в собственном VPN-клиенте Mac?

Каждый раз, когда я подключаюсь к Cisco VPN с помощью встроенного VPN-клиента, он запрашивает пароль. Мне интересно, есть ли способ автоматически сохранить пароль, например, с помощью цепочки для ключей?

Ответы (2)

Это похоже на очень раздражающую и давнюю ошибку в Mac OS X/macOS.

10.6: Сохраните пароль Cisco IPSec в связке ключей:

В Mac OS X Snow Leopard добавлена ​​поддержка соединений Cisco IPSec VPN, то есть простого IPSec с аутентификацией XAuth и mode_cfg.

Это делает его двухуровневым для аутентификации: во-первых, машинная аутентификация с паролем (общим секретом) или сертификатом X509. Затем традиционная пара «имя пользователя-пароль» для XAuth, которую вы можете ввести и сохранить в полях «Имя учетной записи» и «Пароль» соответственно при настройке соединения. Проблема в том, что даже несмотря на то, что вы ввели свой пароль, и он, по-видимому, правильно сохранен в цепочке для ключей, Mac OS X продолжает приставать к вам, чтобы вы вводили пароль вручную каждый раз, когда вы подключаетесь. Оказывается, это просто ошибка с простым исправлением.

Откройте приложение Keychain Access, выберите системную связку ключей и найдите в списке сохраненную запись пароля XAuth. В поле «Вид» будет указано «Пароль IPSec XAuth». Откройте его, затем на вкладке «Контроль доступа» нажмите кнопку «Плюс», чтобы добавить другое приложение. Файл, который нам нужно выбрать, /usr/libexec/configd, находится в скрытой папке. Чтобы перейти туда, нажмите Command+ Shift+ G, введите /usr/libexec, затем выберите configd в диалоговом окне. Сохраните изменения и все — ваш сохраненный пароль теперь должен работать.

Еще одно руководство с красивыми картинками: https://anders.com/guides/native-cisco-vpn-on-mac-os-x/

По-видимому, для использования встроенных инструментов ipsec-vpn необходимо применить то же ручное исправление добавления configd в приложения, разрешенные связкой ключей.

VPN ipsec запрашивает сохраненный пароль:

Симптомы:

В Mac OS X Snow Leopard (10.6.x) вам будет предложено ввести пароль VPN, даже если вы ранее сохранили его в связке ключей. Вы используете IPSec на встроенном VPN-клиенте в Mac OS X Snow Leopard.

Объяснение:

Это вызвано проблемой с элементом Keychain Access для подключения VPN IPSec. Двухминутное исправление уладит это для вас.

Решение:

  • Запустите доступ к связке ключей, щелкнув Приложения > Утилиты > Доступ к связке ключей.
  • На левой верхней панели в разделе «Связки ключей» выберите «Система».
  • Слева внизу в разделе «Категория» выберите «Все элементы».
  • В правой части экрана прокрутите вниз и найдите два элемента с названием VPN (IPSec).
  • Дважды щелкните VPN (IPSec), тип которой — IPSec XAuth Password.
  • Нажмите кнопку/вкладку «Контроль доступа». Приложения, которым разрешено использовать этот элемент связки ключей, будут показаны ниже. Если вас попросят ввести пароль, введите его.
  • Щелкните знак плюс (+)
  • Когда появится окно Finder, нажмите Cmd+ Shift+ Gна клавиатуре.
  • Когда появится диалоговое окно «Перейти к папке», введите /usr/libexec
  • Нажмите Перейти
  • Когда появится папка /usr/libexec, прокрутите до configd, выберите ее и нажмите «Добавить».
  • Нажмите Сохранить изменения
  • Закройте доступ к связке ключей и попробуйте снова подключиться к VPN.
Выполнил эти шаги, но по-прежнему запрашивается мой пароль при подключении к VPN моей корпорации в Мохаве.
@MartinBean Между тем, не могли бы вы попробовать это github.com/halo/macosvpn ?
К сожалению, на 10.14 не работает.

Я нашел аккуратное обходное решение с AnyConnect CLI и Keychain .

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

Скажем, я хочу подключиться foo.bar.comс учетной записью accи паролем pas.

  1. Сохраните accи pasподключите в связке ключей (под логином, а не iCloud) с именемfookey
  2. Запустите следующий скрипт bash для подключения (сохраните его в /usr/local/bin)
/opt/cisco/anyconnect/bin/vpn connect foo.bar.com -s << EOM
0    # foo.bar.com doesn't require two factor authorization
acc  # vpn account
$(sudo security find-generic-password -ws fookey)  # look up [pas] from keychain
EOM

При таком подходе мне не нужно каждый раз вводить свой пароль от vpn, и я не буду писать свой пароль в файлы без шифрования :)


Если вы не знакомы с bash-скриптом:

  • /opt/cisco/anyconnect/bin/vpn connect -sпереходит в неинтерактивный режим.
  • << EOM ... EOMназывается here-docs , который использует строку для замены файла. Очень полезно создавать сценарии интерактивного интерфейса командной строки, записывая каждый ответ в виде новой строки.
  • securityэто хороший инструмент для доступа к вашей связке ключей из командной строки.
Я пытался следовать вашему совету, но что бы я ни делал, я пробовал миллион разных способов, VPN не принимает во внимание мое имя пользователя и пароль, независимо от того, где я их указал. Я видел, что в моем профиле есть опция, запрещающая скрипты, в /opt/cisco/anyconnect/profile/AnyConnectProfile.xml. Затем я спрашиваю себя, можно ли найти альтернативный путь без привлечения сетевых администраторов.
Здравствуйте, @MaikoID, возможно, сначала попробуйте вручную подключиться к VPN в командной строке /opt/cisco/anyconnect/bin/vpn? Вручную введите имя пользователя и пароль без каких-либо сценариев.
Это работает, если я ввожу пользователя и paswd через командную строку.