Ich verwende openconnect
Ubuntu 16.04 terminal. Wenn ich es ausführen möchte, muss ich drei Phasen durchlaufen:
- "ja Nein"
- "Nutzername"
- "Passwort"
Wie kann ich die obigen Phasen umgehen, indem openconnect
icheine Linie(z. B. mithilfe openconnect
von Optionen)?
Gibt es hierfür Optionen wie etwa die folgende Zeile?
sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
Ich openconnect --help
habe einen Weg gefunden, den Benutzernamen einzugeben, aber ich habe keine Ahnung, wie ich das Passwort und die SSL-Verifizierung eingeben kann.
Antwort1
Wenn Sie man openconnect
in ein Terminal tippen, erhalten Sie eineManualpage mit Beschreibung der Verwendung.
Relevante Abschnitte:
-u,--user=NAME
Setzt den Login-Benutzernamen auf NAME--passwd-on-stdin
Passwort von der Standardeingabe lesen
Darüber hinaus müssen Sie möglicherweise Zertifikatswarnungen deaktivieren:
--no-cert-check
Erfordert kein gültiges SSL-Zertifikat des Servers. Prüfungen werden trotzdem durchgeführt und Fehler führen zu einer Warnmeldung, aber die Verbindung wird trotzdem aufrechterhalten. Sie sollten diese Option nicht verwenden müssen – wenn Ihre Server SSL-Zertifikate haben, die nicht von einer vertrauenswürdigen Zertifizierungsstelle signiert sind, können Sie sie (oder Ihre private Zertifizierungsstelle) trotzdem zu einer lokalen Datei hinzufügen und diese Datei mit der Option --cafile verwenden.
Oder Sie fügen das Zertifikat einer Datei hinzu.
Das alles lässt sich kombinieren:
echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
Antwort2
Ich konnte sowohl das Sudo-Passwort, den VPN-Benutzer, das VPN-Passwort als auch die sekundäre Herausforderung mit dem folgenden Befehl automatisieren (auf dem Mac getestet):
challange=<code> && sudo -S <<< "<sudo_password>" echo I am super user && { printf '<vpn_password>\n'; sleep 1; printf "$challange\n"; } | sudo openconnect <server_name> --user <vpn_username> --passwd-on-stdin
Antwort3
Das funktioniert bei mir:
echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin
Antwort4
Als ich mir die Lösungen durchlas, kam ich zu dem Schluss, dass dieses Skript bei mir funktioniert:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert SERVERCERT
Wenn Sie den obigen Befehl ohne SERVERCERT( ausführenweil du es nicht hast), ergibt sich eineFehlerfür Sie, die das SERVERCERT enthält, etwa wie:
Server SSL certificate didn't match: pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=
und das war's, die Zeichenfolge, die mit pin-sha256 begann: ... (die gesamte Zeichenfolge, einschließlich pin-sha256 selbst) ist Ihr SERVERCERT
Und? Das Endergebnis in diesem Fall ist beispielsweise:
echo "PASSWORD" | sudo openconnect --protocol=anyconnect SERVER --user=USERNAME --passwd-on-stdin --servercert pin-sha256:76v/J0dQR44xdeBCxKUq/Slvtikc+0xTyRdjaZk/5fA=