正如标题所说,尝试通过bash连接vpn.以下脚本似乎最接近我正在寻找的答案:
#!/bin/bash
/opt/cisco/anyconnect/bin/vpn -s << EOF
connect https://your.cisco.vpn.hostname/vpn_name
here_goes_your_username
here_goes_your_passwordy
EOF
Run Code Online (Sandbox Code Playgroud)
当我运行它时,vpn启动,但然后退出没有错误,没有连接.这似乎是由-s引起的.如果我删除此参数,VPN将启动,但不会输入任何命令(即connect vpn,username,password).从我读到的-s选项将允许传递用户名/密码.救命!
Bra*_*ock 11
我不得不下载expect软件包(yum install expect).这是我用来自动化vpn连接的代码
#!/usr/bin/expect
eval spawn /opt/cisco/anyconnect/bin/vpn connect vpn.domain.com
expect "Username: " { send "username\r" }
expect "Password: " { send "password\r" }
set timeout 60
expect "VPN>"
Run Code Online (Sandbox Code Playgroud)
真的很容易!:d
虽然expect可以更清洁,但并非绝对必要.假设/opt/cisco/anyconnect/bin/vpnagentd正在运行,因为它应该是:
要连接:
printf "USERNAME\nPASSWORD\ny" | /opt/cisco/anyconnect/bin/vpn -s connect HOST
Run Code Online (Sandbox Code Playgroud)
替换USERNAME,PASSWORD和HOST.将\ny在年底是接受登录旗帜-这是针对我的主人,所以你可能不需要它.
我知道这种方法存在明显的安全问题; 它仅用于说明目的.
获得国家:
/opt/cisco/anyconnect/bin/vpn state
Run Code Online (Sandbox Code Playgroud)
要断开连接:
/opt/cisco/anyconnect/bin/vpn disconnect
Run Code Online (Sandbox Code Playgroud)
这是使用AnyConnect v3.1.05160测试的.