47 votes

Se connecter en utilisant anyconnect à partir de la ligne de commande

J'essaie d'utiliser Cisco anyconnect 3.1 à partir de la ligne de commande Linux pour me connecter à un serveur. Je peux me connecter, mais je dois soumettre un paramètre à la fois. J'aimerais me connecter à partir d'un script qui s'exécutera sur un autre serveur. Est-ce possible ? Quelque chose comme

vpn connect server_add group_name user_name passwd

54voto

Asclepius Points 911

Assumer /opt/cisco/anyconnect/bin/vpnagentd fonctionne comme il se doit automatiquement :

Pour relier :

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

Remplacer USERNAME , PASSWORD y HOST . Les \ny à la fin est d'accepter la bannière de connexion - ceci est spécifique à mon hébergeur.

Notez les guillemets simples ' au lieu de guillemets doubles " - C'est parce que les guillemets doubles indiquent à Bash d'interpréter certains caractères dans les chaînes, comme les points d'exclamation, comme des commandes de l'historique Bash. Si le mot de passe contient un point d'exclamation, la commande échouera avec l'erreur "event not found" (événement introuvable). Les chaînes de caractères entre guillemets simples transmettent les points d'exclamation sans les interpréter.

Pour se déconnecter :

/opt/cisco/anyconnect/bin/vpn disconnect

Ceci a été testé avec AnyConnect v3.1.05160.

13voto

Peter Schoenrank Points 131

J'ai rencontré la même difficulté en essayant d'utiliser Cisco AnyConnect à partir du terminal Mac OS X. Pour que la commande Cisco vpn prenne son entrée à partir de l'entrée standard, vous devez spécifier l'option -s, qui met la commande Cisco vpn en mode interactif. Vous pouvez ensuite fournir les réponses que vous donnez en mode interactif.

Les réponses que vous devez donner dépendent de la manière dont l'administrateur du serveur VPN a configuré le serveur. Pour moi, les invites interactives du VPN sont les suivantes

Group: 
Username: 
Password: 

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

La commande que j'exécute est donc la suivante

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

(Les guillemets autour de EOF sont destinés à empêcher l'expansion/substitution de commandes/paramètres dans l'entrée suivante).

Die sortie à la fin permet de quitter le mode interactif Cisco vpn.

4voto

PetieRay Points 41

J'aime simplifier la ligne de commande, j'utilise donc l'approche ci-dessus dans un Shell Shell nommé gotowork. Comme ci-dessus, je dois fournir le groupe, mon nom d'utilisateur et un mot de passe composé d'un code PIN privé et d'un code RSA SecurID. Je n'ai pas besoin de répondre à la question "Accepter ? Tout, sauf le code RSA, se trouve dans le Shell, de sorte que la ligne de commande est la suivante

$ gotowork <RSA passcode>

Je dois l'exécuter en tant que root. Supposons que le code PIN soit 1234. Le script est essentiel :

# 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

J'utilise anyconnect 3.1.05170. Testé sur Debian 6, LinuxMint 17

3voto

adampasz Points 131

C'est ce qui a fonctionné pour moi sur OSX El Capitan. Les espaces réservés sont entourés de [crochets].

Pour activer

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

Pour désactiver

/opt/cisco/anyconnect/bin/vpn disconnect

*Je sais que cette réponse est similaire à celle de Peter S. ci-dessus.

3voto

machineaddict Points 149

Vous pouvez placer vos informations de connexion dans un fichier séparé, par exemple

anyconnect.txt :

connect [HOST]
[GROUP or 0 or 1]
[USER]
[PASSWORD]
y
exit

Et de le faire :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X