Как использовать 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)
Другие вопросы по тегам