Как запустить openconnect с именем пользователя и паролем в строке терминала?

Как запустить openconnect с именем пользователя и паролем в строке терминала?

Я использую openconnectUbuntu 16.04 Terminally, когда я хочу его запустить, мне нужно войти в три фазы:

  • "да нет"
  • "имя пользователя"
  • "пароль"

Как я могу обойти вышеуказанные фазы, используя openconnectinлиния(например, с помощью openconnectопций)?
Есть ли какие-либо опции для этого, например, следующая строка?

sudo openconnect <server-name> --user=<'username'> --pass=<'password'>

Я использовал openconnect --helpи нашел способ заполнить имя пользователя, но у меня нет ни малейшего представления о том, как заполнить пароль и пройти проверку SSL.

решение1

Если вы введете man openconnectв терминале, вы получитестраница руководства с описанием использования.

Соответствующие разделы:

-u,--user=NAME
Установить имя пользователя для входа в NAME

--passwd-on-stdin
Прочитать пароль из стандартного ввода

Кроме того, вам может потребоваться отключить предупреждения о сертификатах:

--no-cert-check
Не требовать, чтобы SSL-сертификат сервера был действительным. Проверки все равно будут выполняться, а сбои приведут к появлению предупреждающего сообщения, но соединение все равно будет установлено. Вам не нужно использовать эту опцию — если у ваших серверов есть SSL-сертификаты, не подписанные доверенным центром сертификации, вы все равно можете добавить их (или ваш личный CA) в локальный файл и использовать этот файл с опцией --cafile.

Или вы можете добавить сертификат в файл.

Все это можно объединить:

echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check

решение2

Мне удалось автоматизировать пароль 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

решение3

Мне это подходит:

echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin 

решение4

Читая решения, я наконец нашел скрипт, который работает у меня:

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=

Связанный контент