Conecte usando anyconnect na linha de comando

21

Estou tentando usar o Cisco AnyConnect 3.1 da linha de comando do Linux para se conectar a um servidor. Eu posso me conectar, mas tenho que enviar um parâmetro por vez. Eu gostaria de me conectar a partir de um script que será executado em outro servidor. Posso fazer isso? Algo como

vpn connect server_add group_name user_name passwd
    
por Kelly Goedert 24.09.2013 / 13:35

4 respostas

20

Assumindo que /opt/cisco/anyconnect/bin/vpnagentd esteja sendo executado como deveria ser automaticamente:

Para conectar :

printf 'USERNAME\nPASSWORD\ny' | /opt/cisco/anyconnect/bin/vpn -s connect HOST

Substitua USERNAME , PASSWORD e HOST . O \ny no final é aceitar o banner de login - isso é específico do meu host.

Observe as aspas simples ' em vez de aspas duplas " - isso porque as aspas duplas dizem ao Bash para interpretar certos caracteres dentro de cadeias, como pontos de exclamação, como comandos do histórico de Bash. Aspas duplas farão este comando falhar com um erro "evento não encontrado" se a senha contiver um ponto de exclamação. Strings de aspas simples passam pontos de exclamação sem interpretá-las.

Para desconectar :

/opt/cisco/anyconnect/bin/vpn disconnect

Isso foi testado com o AnyConnect v3.1.05160.

    
por 09.11.2014 / 06:46
3

Eu corri para a mesma dificuldade tentar usar o Cisco AnyConnect do Mac OS X Terminal. Para obter o comando Cisco vpn para obter sua entrada da entrada padrão, você deve especificar a opção -s, que coloca o comando Cisco vpn no modo interativo. Então você pode fornecer as respostas que você dá no modo interativo.

As respostas que você precisa fornecer dependem de como o administrador do servidor VPN configurou o servidor. Para mim, os prompts interativos da vpn são

Group: 
Username: 
Password: 

Blah, blah, blah, ...
accept? :

Então o comando que eu corro é

$ /opt/cisco/anyconnect/bin/vpn -s connect vpn.example.com <<"EOF"
0
username
password
y
exit
EOF

(As aspas em torno de EOF são para impedir a expansão / substituição de comandos / parâmetros na seguinte entrada.)

A exit no final é para sair do modo interativo Cisco vpn.

    
por 09.03.2014 / 03:57
2

Eu gosto de simplificar a linha de comando, então eu uso a abordagem acima em um shell script chamado gotowork. Como acima, preciso fornecer o grupo, meu nome de usuário e uma chave de acesso composta de um PIN privado mais uma senha RSA SecurID. Eu não tenho que responder ao acima "aceitar" questão. Tudo, exceto a senha RSA, está no script, portanto, a linha de comando é

$ gotowork <RSA passcode>

Eu tenho que executá-lo como root. Suponha que o PIN seja 1234. O script é essencial:

# put the interactive answers into a text file
echo -e "0\nusername\n1234$1\n" > /tmp/answers.txt
# find the path to the anyconnect executables
ciscopath="$(dirname $(find /opt/cisco -depth -name vpnagentd))"
# make sure the anyconnect daemon is running
[ $(pidof vpnagentd) ] || $ciscopath/vpnagentd
# connect
$ciscopath/vpn -s < /tmp/answers.txt connect remote.mycompany.com

Usando o anyconnect 3.1.05170. Testado no Debian 6, LinuxMint 17

    
por 23.08.2014 / 16:31
1

Isso é o que funcionou para mim no OSX El Capitan. Espaços reservados são cercados por [chaves].

Para ativar

/opt/cisco/anyconnect/bin/vpn -s connect [HOST_ADDRESS] <<"EOF"
[VPN_USERNAME]
[VPN_PASSWORD] 
y
EOF

Para desativar

/opt/cisco/anyconnect/bin/vpn disconnect

* Eu sei que isso é semelhante à resposta de Peter S. acima.

    
por 28.11.2015 / 21:14