Как вы получаете соединение VPN VPN, чтобы запомнить его пароль?

16

Проблема

У меня есть VPN-соединение Cisco IPSEC в настройках сети на компьютере Yosemite. Он отлично работает, кроме запроса пароля для каждого соединения. Сохраненный пароль полностью игнорируется.

Фон

Если я введу пароль в настройках сети и нажму «Подключить», сохраненный пароль исчезнет, ​​и появится диалоговое окно с запросом пароля. Я проверил, что пароль правильный (он скопирован из документа).

Вещи, которые не работали

  • Предлагаемое решение для Snow Leopard состояло в том, чтобы сохранить пароль, открыть Keychain Access, найти ключ «Xauth» в системной связке ключей и предоставить /usr/libexec/configdдоступ к ключу. Это не имело никакого эффекта.

  • Ремонт обычных разрешений / проверка диска

Странные вещи

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

Общий вопрос

Как правильно сохранить пароль, чтобы не вводить его заново при каждом подключении?

Майки Т.К.
источник
хмм. У меня также возникают странные проблемы с аутентификацией на Yosemite, особенно в диалоговом окне Network. Не удивлюсь, если есть ошибка.
n1000
Вы уверены, что это не зависит от удаленных политик VPN (теперь разрешено сохранение пароля)?
Маттео Гварнерио
Это .. объяснило бы, почему оно исчезает из цепочки для ключей, если явно сохранено. Придется поболтать с админами сети!
Майки TK

Ответы:

13

Я предполагаю, что вы используете anyconnect для подключения к серверу Cisco VPN. AnyConnect также может быть использован из терминала. Это работает на macOS Sierra и AnyConnect 3.1.14018. Создайте скрипт bash с помощью следующей команды:

/opt/cisco/anyconnect/bin/vpn connect your-vpn.server.here -s <.credentials

И поместите данные для входа в файл .credentials со следующими тремя строками:

0
your-username
your-password

Не забудьте поставить разумные разрешения на файлы.

Hans
источник
Пользователь заявляет: «У меня есть VPN-соединение Cisco IPSEC в настройках сети на компьютере Yosemite». Этот выбор слов привел меня к довольно высокой уверенности в том, что они используют встроенное решение VPN в Системных настройках / Сеть / +
GhostLyrics
Можете ли вы как-нибудь передать этот файл с зашифрованными именами и / или паролями? как с файлом паролей на Linux
Forgotstackxpassword
8

Прочитав ваш вопрос, у меня сложилось впечатление, что вы все делаете правильно, и Cisco VPN Server имеет возможность разрешить сохранение паролей на стороне клиента disallow.

Я точно знаю, что такая настройка существует.

GhostLyrics
источник
6
Это все еще раздражает, что клиент OS X позволяет эту disallowнастройку. Очень похоже на компиляцию okular без поддержки DRM, чтобы скопировать предложение из рецензируемого журнала, кажется, что это принципиально недружелюбный пользовательский параметр.
Ландак
2

Оба ответа здесь, когда я пишу это, имеют на это право, но наличие vpnкомандной строки означает, что мы можем обойти эту враждебную пользователю конструкцию expect. Спасибо предыдущим авторам, GhostLyrics за раскрытие существования опции на стороне сервера, которая отключает сохранение пароля, и Гансу за выявление vpnклиента командной строки.

Создайте файл, который выглядит так:

#!/usr/bin/expect --
set timeout 10
set addr ""  # VPN Host
set user ""  # Username
set pass ""  # Password (ensure that special characters are escaped)
set group "" # Group NUMBER shown in connect prompt


spawn /opt/cisco/anyconnect/bin/vpn connect $addr
expect "\r\nGroup:*"
send -- "$group\r"
expect "\r\nUsername:*"
send -- "$user\r"
expect "Password: "
send -- "$pass\r"
expect eof

Заполните setполя как обычно. Если ваш VPN похож на мой, вы получаете список «групп» при запуске vpn connect. Запустите его один раз вручную и отметьте, какой номер соответствует группе, с которой вы хотите соединиться. Он не будет меняться между запусками, если администраторы не будут добавлять / удалять группы. Вы не можете использовать здесь имя, программа ожидает число.

После того, как все заполнено, chmod +xзапустите этот скрипт. Теперь я могу подключиться к своему VPN без помощи рук!

Майки Т.К.
источник
0

Свободный ответ Ханса - спасибо! - Я хотел немного упростить вызов, минуя Терминал и заканчивая значком AnyConnect в Меню состояния macOS. (Я на Мохаве 10.14.6.)

Сначала запустите Terminal, затем перейдите в каталог двоичного файла приложения AnyConnect:

$ cd "/Applications/Cisco/Cisco AnyConnect Secure Mobility Client.app/Contents/MacOS"

Сделайте копию исходного двоичного файла:

$ sudo cp \
"Cisco AnyConnect Secure Mobility Client" \
"Cisco AnyConnect Secure Mobility Client.orig"

Наконец, перезаписать исходный файл сценарием оболочки, изменив VPN hostсвое имя или адрес хоста VPN userи pa$$w0rdсвои учетные данные:

$ sudo cat > "Cisco AnyConnect Secure Mobility Client" <<'SCRIPT'
#!/bin/sh

# The AnyConnect vpn utility takes some options and commands or
# else runs interactively. The help command shows that -s reads
# a script from STDIN and that connect takes a host as argument.
# connect gets the username and password from STDIN. We will 
# supply them from a heredoc with the -s option.

/opt/cisco/anyconnect/bin/vpn -s \
connect "VPN host" <<'CREDENTIALS'
user
pa$$w0rd
CREDENTIALS

exec "$0.orig"  # invoke the original app
SCRIPT

Теперь вы должны иметь возможность запускать AnyConnect из Spotlight или Finder как обычно. Сначала наш скрипт подключится, а затем выполнит передачу обслуживания в двоичный файл приложения, так что AnyConnect появится в меню состояния рабочего стола.

Кристиан Кэмпбелл
источник