Как использовать openconnect с именем пользователя и паролем в строке в терминале?
Я использую openconnect в Ubuntu 16.04 окончательно, когда я хочу включить его, мне нужно ввести три этапа, которые содержат:
- "да нет"
- "Имя пользователя"
- "пароль"
Как я могу обойти эти фазы с помощью openconnect на линии (например, используя openconnect опции)?
Есть ли варианты для этого, такие как следующие?
sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
я использовал openconnect --help и нашел способ для имени пользователя, но для проверки пароля и ssl еще есть проблема.
7 ответов
Если вы печатаете man openconnect в терминале вы получите страницу руководства, описывающую использование.
Соответствующие разделы:
-u, - пользователь = ИМЯ
Установите логин в NAME--passwd-на-STDIN
Считать пароль из стандартного ввода
Кроме того, вам может потребоваться отключить предупреждения сертификатов:
--no-CERT-проверка
Не требуйте, чтобы SSL-сертификат сервера был действительным. Проверки все равно будут выполняться, а сбои вызовут предупреждающее сообщение, но соединение все равно будет продолжено. Вам не нужно использовать эту опцию - если ваши серверы имеют сертификаты SSL, которые не подписаны доверенным центром сертификации, вы все равно можете добавить их (или ваш частный центр сертификации) в локальный файл и использовать этот файл с параметром --cafile.,
Или вы можете добавить сертификат в файл.
Все это можно совместить:
echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
Мне удалось автоматизировать как пароль sudo, так и пользователя VPN, пароль VPN и вторичный вызов, используя следующую команду (проверено на Mac):
challange=<code> && sudo -S <<< "<sudo_password>" echo I am super user && { printf '<vpn_password>\n'; sleep 1; printf "$challange\n"; } | sudo openconnect <server_name> --user <vpn_username> --passwd-on-stdin
Это работает для меня:
echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin
Чтобы пропустить проверку сертификата,
--no-cert-checkпараметр был удален в новых версиях. Ты можешь использовать
--servercert вместо.
--servercert sha256:sdflkdsjflsdjkfds
Когда я прочитал решения, наконец, это скрипт, который работает для меня:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert SERVERCERT
Когда вы запускаете указанную выше команду без SERVERCERT ( потому что у вас его нет ), она выдает вам ошибку , содержащую SERVERCERT внутри, что-то вроде:
Server SSL certificate didn't match: pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=и все, строка, начинающаяся с pin-sha256:...(всю, включая сам pin-sha256) - это ваш SERVERCERT
Так? окончательный результат в этом случае, например:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=
Вы можете попробовать этот очень простой в использовании сценарий оболочки: https://github.com/sorinipate/vpn-up-for-openconnect .
Из описания проекта:
vpn-для-openconnect
VPN для OpenConnect
Функции
Сценарий оболочки для openconnect, который позволяет:
- для определения нескольких VPN-соединений
- для запуска openconnect без ввода имени пользователя и пароля.
Пример раздела конфигурации
#Company VPN export COM_NAME="My Company VPN" export COM_HOST=vpn.mycompany.com export COM_AUTHGROUP=developers export COM_USER=sorin.ipate export COM_PASSWD="MyPassword"Запустить VPN
% alias vpn-up='~/bin/vpn-up.command' % vpn-up
echo "YourPassword" | sudo openconnect vpn.yourserver.com --user=yourUseraname --passwd-on-stdin
- Для меня нужен пароль
" - В последней версии
--no-cert-checkустарело из аргумента команды openconnect (моя версия: версия OpenConnect v7.08-3ubuntu0.18.04.2)