Cisco AnyConnect v3.1 AutoLogin


10

Tengo un poco de dificultad con Cisco AnyConnect v3.1 con respecto al inicio de sesión automático. Tengo que estar conectado a un solo servidor todo el día todos los días, y sería excelente si no tuviera que desenterrar mi contraseña de 16 caracteres todos los días. Me encantaría que el cliente inicie sesión automáticamente, pero ni siquiera estoy seguro en este momento de que sea una posibilidad.

Debo tener en cuenta que el software AnyConnect me lo proporciona nuestra empresa de hosting, y ni yo ni nadie en mi organización tenemos acceso a la parte administrativa. Vi que hay una pieza de software en las interwebs llamada "Editor de perfil AnyConnect", pero Cisco no me permitió descargar sin un inicio de sesión válido.

He estado %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmlrevisando mis preferencias y %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLrevisando la configuración de mi perfil. Ninguno de estos mostró en ninguna parte que sería capaz de almacenar mis credenciales. Incluso rompí mi perfil varias veces al tratar de calzar mi contraseña en algunos lugares. Eso no funcionó, imagínate.

Por último, encontré esta publicación en el foro que parecía especificar "huellas digitales" del certificado del cliente y del servidor, así como algo llamado token SDI.

Descargo de responsabilidad: soy un desarrollador web front-end por día y ha pasado bastante tiempo desde que tuve que hacer cualquier gestión de red por mí mismo, ¡perdón por la pregunta novata!


1
Esta suele ser una política establecida y controlada por las personas que administran el acceso Anyconnect. Como ha declarado que no tiene acceso a esa parte de la configuración, dudo que haya mucho que podamos hacer para ayudarlo. Y esto probablemente está fuera de tema como una pregunta de "usuario final".
Brett Lykins el

Pregunta razonable con buenos detalles ... migremos a Super Usuario
Mike Pennington

Respuestas:


16

Aquí está mi script para iniciar Cisco AnyConnect Mobility Client v3.1 e iniciar sesión automáticamente. Guarde este script como FILENAME.vbs , reemplace la CONTRASEÑA con su contraseña, reemplace la ruta al VPN Client exe si es necesario (probablemente no), y es posible que también deba ajustar el segundo tiempo de suspensión dependiendo de la velocidad de su conexión (el mío funciona confiablemente en 5000 pero el suyo puede necesitar menos / más tiempo para marcar su hogar). Tengo el mío clavado en mi barra de tareas, pero también puedes usar la tecla de acceso rápido.

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"""

WScript.Sleep 3000

WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"

WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

WScript.Sleep 5000

WshShell.SendKeys "PASSWORD"
WshShell.SendKeys "{ENTER}"

1
¡Qué buena solución! He puesto algunos TAB , ENTER y sleep adicionales para mi caso específico y funcionó perfectamente. Para mi máquina y conexión a Internet (300Mbit hacia abajo y hacia arriba) reduje todos los tiempos de reposo a solo medio segundo (500 milisegundos) y ahora obtengo una conexión VPN súper rápida. ¡Gracias!
informatik01

1
Nota: si su contraseña contiene los caracteres%! (^ ~ +,
Debe

4

Yo uso algo en este sentido:

set FILE=%TEMP%\tmp
echo connect your.host.name> %FILE%
(echo 0)>> %FILE%
echo yourUserName>> %FILE%
echo yourPassWord>> %FILE%
"C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s < %FILE%

( Actualización: ¿Por qué hay paréntesis echo 0? Esto debería recordarle, al hacer una elección diferente que 0, eso 1>o 2>tener un significado especial, redirigir stdouto stderr, respectivamente, pero no hacer eco 1o 2. Así que nos mantenemos seguros con ( echo 0).)

Esto es un poco más conciso:

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord& echo.) > %FILE%
more %FILE% | "C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

Sin embargo, si desea lograr lo mismo sin un archivo temporal, esto no funciona para mí; me interesaría, por qué:

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

Actualización: esto funciona, se encuentra en /programming//a/29747723/880783 :

(echo connect your.host.name^& echo 0^& echo yourUserName^&echo yourPassWord^&rem.) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

Todas estas variantes dependen, por supuesto, de la configuración de su servidor (especialmente el grupo VPN que debe elegir). Para averiguar lo que necesita ingresar, llame vpncli.exesin ningún parámetro una vez, comience con connect your.host.namey luego observe lo que se le solicita.

Actualización: tiene la ventaja adicional de ofrecer total libertad con respecto al servidor, el nombre de usuario y la contraseña, y no depende de ningún valor de suspensión (que siempre es difícil si su sistema tiende a estar ocupado con otra cosa).


2
El modificador -s no está disponible en la versión 3.1 del cliente. ¿Tienes la versión 4.1? ¿Está esa versión disponible públicamente en alguna parte? No tengo una licencia válida para descargarlo del sitio web de Cisco.
SzilardD

Sí, usé la versión 4+. Sin embargo, no conozco ninguna fuente pública legal (probablemente debido a restricciones de exportación).
bers

3

Estoy respondiendo mi propia pregunta con esta respuesta "meh": no es lo que buscaba, y con mucho gusto aceptaré otra respuesta que pueda responder mejor a mi pregunta original.

Como no tuve suerte con los inicios de sesión automáticos, lo mejor que se me ocurrió fue copiar mi contraseña ridículamente larga en mi portapapeles. En Windows, creé un .batarchivo con esto en el cuerpo:

echo|set /p=MyPassword|clip

Donde "MyPassword" es su contraseña real.

Cuando se hace doble clic, este archivo copiará su contraseña en su portapapeles para un inicio de sesión rápido. ¡Mejor que nada!


Si está dispuesto a hacer un poco de trabajo ligero de automatización, use autoit para iniciar la aplicación VPN y luego copie la contraseña en el campo de contraseña
Mike Pennington

2
Por favor, ¿cuál es la ventaja en echo|set /p=MyPassword|clipcomparación con solo echo MyPassword|clip?
bers

3
@bers Si usa solo echo your_pass| clip, también colocará / agregará el nuevo carácter de línea al final de your_pass . Simplemente pruébelo usted mismo y cuando lo pegue en algún editor notará que el cursor está en la siguiente línea (si tiene un editor que puede mostrar nuevos caracteres de línea, como Notepad ++ o SciTE , úselo y verá CRLF en Windows al final de your_pass ). Pero la solución actual de MikeZ funciona perfectamente (como una forma de copiar una contraseña en el portapapeles).
informatik01

1
@ informatik01 ¡Gracias por la explicación!
bers

1
(1) La excelente explicación de @ informatik01 no aborda por completo la necesidad echo|del inicio de la línea de comando. La razón es que set /pes el comando para leer un valor (una línea) de la entrada estándar. Sin él echo|, el set /p=MyPassword|clipcomando se sentaría en silencio y leería una línea desde la terminal. (2) Odio ver un |sin espacios antes y después. Pero cuidado, eso echo | set /p=MyPassword | clipescribirá MyPassword (con un espacio final) en el portapapeles. Puede evitar que mediante la adición cotizaciones: echo | set /p="MyPassword" | clip.
Scott
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.