Skip to content

Instantly share code, notes, and snippets.

@zenglian
Last active February 6, 2024 13:28
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save zenglian/8c7ee110b83cb8ffa033ba35ec1b6e8f to your computer and use it in GitHub Desktop.
Save zenglian/8c7ee110b83cb8ffa033ba35ec1b6e8f to your computer and use it in GitHub Desktop.
auto login with cisco anyconnect (password saved, silent mode)

Cisco AnyConnect: auto login in silent mode

This gist is for Linux. For windows is the same thing.

Connect

create a file .login_info as below:

connect your.server.url    
usernanme  
password
    (blank line)  

create a script as below

/opt/cisco/anyconnect/bin/vpn -s < .login_info   

Trouble shooting

The input (content of .login_info) may vary according to your settings. Try VPN shell to determine your inputs.

Run
/opt/cisco/anyconnect/bin/vpn -s

Now you are in command shell:
VPN>

Connect your server:
VPN> connect your.vpn.server

Input what asked, for me it's below:
Username: [xxxxx] xxxxx
Password: xxxxxx

Exit from VPN shell:
VPN> exit (or return)

Remember what you typed, and save them into the .login_info file.

Disconnect

With this approach, the icon will not show in the taskbar, you need run command line vpn disconnect to disconnect.
If you want to show the icon in the taskbar, add below line in the script:

/opt/cisco/anyconnect/bin/vpnui &
@cholantesh
Copy link

@sergeev-vn check out my reply above. Kf your organization supports push notifications through a SSO partner like okra or o365, it should work.

@sergeev-vn
Copy link

sergeev-vn commented Feb 14, 2023

@sergeev-vn check out my reply above. Kf your organization supports push notifications through a SSO partner like okra or o365, it should work.

Unfortunately this is not what I need. After entering the password, I must enter a unique SMS code that comes to my phone. So I need to make a wait for this code to be entered so that I can enter it.

@sergeev-vn
Copy link

In the end, I got what I wanted.
On Ubuntu my script is like this:

#!/usr/bin/expect
spawn sudo /opt/cisco/anyconnect/bin/vpnagentd
expect ": "
send "HERE_SUDO_PASSWORD\r"
expect "$ "
spawn /opt/cisco/anyconnect/bin/vpn -s HERE_HOST
expect "*]*"
send -- "HERE_LOGIN\r"
expect "Password: "
send -- "HERE_PASSWORD\r"
expect "Answer: "
interact ++ return

At startup:
/usr/bin/gnome-terminal -- /PATH_TO_SCRIPT.sh

So, when my computer turns on, a terminal will appear where I just have to enter my unique SMS code.

@felicson
Copy link

felicson commented Dec 27, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment