Folgende @Fluffy-Antwort (leider habe ich nicht genug Ruf, um zu kommentieren)
Es gibt einen netten Bash-Trick, der die pass.txt-Datei überflüssig machen kann
Anstelle von
openvpn ... --auth-user-pass pass.txt
wobei pass.txt ist
opvn_user
ovpn_pass
kann man verwenden
openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
bitte beachten Sie den \n Verwendung zwischen Benutzername und Passwort
Das Problem bei den vorgeschlagenen Lösungen ist, dass sie alle auf einem Klartext-Passwort basieren.
Ich habe mir das folgende Bash-Skript ausgedacht, um das Problem zu lösen:
VPN_USER="your user name"
VPN_PASSWORD="$(sudo kwallet-query -l secrets -r your_password)"
CONFIG_FILE=/tmp/your_vpn.ovpn
sudo bash -c 'openvpn --config '"$CONFIG_FILE"' --auth-user-pass <(echo -e "'"$VPN_USER"'\n'"$VPN_PASSWORD"'")'
Es fragt den Passwort-Manager (kwallet) ab, um das Passwort zu erhalten. Außerdem können Sie die vorhandene Konfiguration in CONFIG_FILE wiederverwenden (Entfernen Sie einfach die --auth-user-pass Eintrag daraus, falls vorhanden)
Die vorherige Antwort hat bei mir nicht funktioniert (immer noch nach Benutzername und Passwort gefragt), was funktioniert hat, war das Einfügen Ihrer Anmeldeinformationen in eine Datei (pass.txt) wie diese
example@unixlinux.online
password
und Aufruf von openvpn mit --auth-user-pass pass.txt .
Quelle
Beachten Sie, dass es in einigen OpenVPN-Versionen (z. B. OpenVPN 2.4.11) einen Fehler gibt, bei dem Sie zuerst --config verwenden müssen und dann --auth-user-pass oder Ihre Authentifizierungsdatei wird ohne Warnung ignoriert.
Hier also ein vollständiges Beispiel:
sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn --auth-user-pass pass.txt