Po odpovědi @Fluffy (bohužel nemám dostatečnou pověst, abych mohl komentovat)
Existuje pěkný bash trik, který může eliminovat potřebu souboru pass.txt
Namísto
openvpn ... --auth-user-pass pass.txt
kde pass.txt je
opvn_user
ovpn_pass
lze použít
openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
všimněte si prosím \n
použití mezi uživatelským jménem a heslem
Problém s navrhovanými řešeními je, že všechna jsou založena na hesle ve formátu prostého textu.
K vyřešení problému jsem přišel s následujícím bash skriptem:
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"'")'
Dotazuje se správce hesel (kwallet), aby získal heslo. Umožňuje také znovu použít existující konfiguraci v CONFIG_FILE
(stačí odstranit --auth-user-pass
záznam z něj, pokud existuje)
Předchozí odpověď pro mě nefungovala (stále jsem se zeptal na uživatelské jméno a heslo), co fungovalo, bylo vložení vašich přihlašovacích údajů do souboru (pass.txt), jako je tento
[email protected]
password
a volání openvpn s --auth-user-pass pass.txt
.
zdroj
Všimněte si, že v některých verzích OpenVPN (např. OpenVPN 2.4.11) je chyba, kdy musíte nejprve použít --config
a poté --auth-user-pass
nebo váš auth soubor bude bez varování ignorován.
Zde je úplný příklad:
sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn --auth-user-pass pass.txt