Ich versuche, Cisco anyconnect 3.1 über die Linux-Befehlszeile zu verwenden, um eine Verbindung zu einem Server herzustellen. Ich kann eine Verbindung herstellen, muss jedoch jeweils einen Parameter übermitteln. Ich möchte eine Verbindung über ein Skript herstellen, das auf einem anderen Server ausgeführt wird. Kann ich das machen? So etwas wie
vpn connect server_add group_name user_name passwd
networking
vpn
cisco-vpn-client
Kelly Goedert
quelle
quelle
Antworten:
Angenommen,
/opt/cisco/anyconnect/bin/vpnagentd
es läuft so, wie es automatisch sein sollte:So verbinden Sie sich :
Ersetzen
USERNAME
,PASSWORD
undHOST
. Am\ny
Ende ist das Login-Banner zu akzeptieren - dies ist spezifisch für meinen Host.Beachten Sie die einfachen Anführungszeichen
'
anstelle von doppelten Anführungszeichen."
Dies liegt daran, dass Bash durch doppelte Anführungszeichen angewiesen wird, bestimmte Zeichen in Zeichenfolgen, z. B. Ausrufezeichen, als Bash-Verlaufsbefehle zu interpretieren. Doppelte Anführungszeichen führen dazu, dass dieser Befehl mit dem Fehler "Ereignis nicht gefunden" fehlschlägt, wenn das Kennwort ein Ausrufezeichen enthält. Zeichenfolgen in Anführungszeichen geben Ausrufezeichen weiter, ohne sie zu interpretieren.Verbindung trennen :
Dies wurde mit AnyConnect v3.1.05160 getestet.
quelle
Certificate is from an untrusted source
, und Sie wollen immer noch dann einen Pass verbindeny
Parameter in dem oben beschriebenen Verfahren , so dass der Befehl zu verbinden wird:printf "y\nUSERNAME\nPASSWORD\ny" | /opt/cisco/anyconnect/bin/vpn -s connect HOST
. Beachten Sie, dass Sie dies nur in dem Fall tun, in dem Sie Ihrer Verbindung absolut vertrauen. Andernfalls sitzt möglicherweise ein Mittelsmann und schnüffelt auf Ihnen herum.GROUPNAME\nUSERNAME\nPASSWORDy
. Wenn Sie Ihr Passwort von dem Befehl (der ein Shell-Skript oder eine Dotfile-Schlüsselbindung sein kann) trennen möchten, können Sie dies tun:cat ~/.anyconnect_credentials | /opt/cisco/anyconnect/bin/vpn -s connect HOST
>> notice: Please respond to banner. MYPASSWORD
Beim Versuch, Cisco AnyConnect vom Mac OS X Terminal aus zu verwenden, trat dieselbe Schwierigkeit auf. Damit der Cisco vpn-Befehl seine Eingabe von der Standardeingabe übernimmt, müssen Sie die Option -s angeben, mit der der Cisco vpn-Befehl in den interaktiven Modus versetzt wird. Anschließend können Sie die Antworten, die Sie geben, im interaktiven Modus bereitstellen.
Welche Antworten Sie geben müssen, hängt davon ab, wie der VPN-Serveradministrator den Server konfiguriert hat. Für mich sind die interaktiven vpn-Eingabeaufforderungen
Der Befehl, den ich ausführe, lautet also
(Die Anführungszeichen um EOF sollen das Erweitern / Ersetzen von Befehlen / Parametern in der folgenden Eingabe verhindern.)
Der Ausgang am Ende ist die Cisco vpn interaktiven Modus zu verlassen.
quelle
Ich mag es, die Befehlszeile zu vereinfachen, also benutze ich den obigen Ansatz in einem Shell-Skript namens gotowork. Wie oben muss ich die Gruppe, meinen Benutzernamen und einen Zugangsschlüssel angeben, der aus einer privaten PIN und einem RSA SecurID-Zugangscode besteht. Ich muss das oben stehende "Akzeptieren?" Nicht beantworten. Frage. Alles außer dem RSA-Passcode befindet sich im Skript, die Befehlszeile also
Ich muss es als root ausführen. Angenommen, die PIN lautet 1234. Das Wesentliche zum Skript:
Verwenden von anyconnect 3.1.05170. Getestet unter Debian 6, LinuxMint 17
quelle
0\n
notwendig? Oder ist es spezifisch für Ihr Unternehmen?0
, gefolgt von einer neuen Zeile, gefolgt von einem\n
Benutzernamen, gefolgt von einer neuen Zeile\n
usw.0
bedeutet dann "benutze die erste Gruppe".Das hat bei mir unter OSX El Capitan funktioniert. Platzhalter sind von [eckigen Klammern] umgeben.
Ermöglichen
Etwas deaktivieren
* Ich weiß, dass dies der obigen Antwort von Peter S. ähnelt.
quelle
printf "y\n[GROUP]\n\n[PASSWORD]\ny\n" | /opt/cisco/anyconnect/bin/vpn -s connect HOST