Lo uso openconnect
en Ubuntu 16.04 de forma terminal, cuando quiero ejecutarlo, necesito ingresar a tres fases:
- "sí No"
- "nombre de usuario"
- "contraseña"
¿Cómo puedo omitir las fases anteriores usando openconnect
enuna linea(por ejemplo, usando openconnect
opciones)?
¿Hay alguna opción para eso, como la siguiente línea?
sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
Utilicé openconnect --help
y descubrí una manera de completar el nombre de usuario, pero no tengo idea de cómo completar la contraseña y la verificación SSL.
Respuesta1
Si escribe man openconnect
en una terminal obtendrá unpágina del manual que describe el uso.
Secciones relevantes:
-u,--user=NOMBRE
Establezca el nombre de usuario de inicio de sesión en NOMBRE--passwd-on-stdin
Leer contraseña desde la entrada estándar
Además, es posible que deba desactivar las advertencias de certificados:
--no-cert-check
No requiere que el certificado SSL del servidor sea válido. Las comprobaciones seguirán realizándose y las fallas generarán un mensaje de advertencia, pero la conexión continuará de todos modos. No debería necesitar usar esta opción: si sus servidores tienen certificados SSL que no están firmados por una autoridad certificadora confiable, aún puede agregarlos (o su CA privada) a un archivo local y usar ese archivo con la opción --cafile .
O puede agregar el certificado a un archivo.
Todo esto se puede combinar:
echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
Respuesta2
Pude automatizar tanto la contraseña sudo, el usuario de VPN, la contraseña de VPN y el desafío secundario usando el siguiente comando (probado en 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
Respuesta3
Esto funciona para mí:
echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin
Respuesta4
Mientras leo las soluciones, finalmente este es el script que me funciona:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert SERVERCERT
Cuando ejecuta el comando anterior sin SERVERCERT(porque no lo tienes), da unaerrorpara ti que contiene el SERVERCERT dentro, algo como:
Server SSL certificate didn't match: pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=
y eso es todo, la cadena que comenzó con pin-sha256:...(todo, incluye el pin-sha256 en sí) es tu SERVERCERT
¿Entonces? el resultado final en este caso por ejemplo es:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=