Dopo la risposta di @Fluffy (purtroppo non ho abbastanza reputazione per commentare)
C'è un bel trucco bash che può eliminare la necessità del file pass.txt
Invece di
openvpn ... --auth-user-pass pass.txt
dove pass.txt è
opvn_user
ovpn_pass
si può usare
openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
si prega di notare il \n
utilizzo tra nome utente e password
Il problema con le soluzioni suggerite è che sono tutte basate su una password in testo semplice.
Ho ideato il seguente script bash per risolvere il problema:
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"'")'
Interroga il gestore delle password (kwallet) per ottenere la password. Consente inoltre di riutilizzare la configurazione esistente in CONFIG_FILE
(basta rimuovere il --auth-user-pass
voce da esso se presente)
La risposta precedente non ha funzionato per me (ha ancora chiesto nome utente e password), ciò che ha funzionato è stato inserire le tue credenziali in un file (pass.txt), come questo
[email protected]
password
e chiamando openvpn con --auth-user-pass pass.txt
.
fonte
Nota che in alcune versioni di OpenVPN (ad es. OpenVPN 2.4.11) c'è un bug in cui devi prima usare --config
e poi --auth-user-pass
o il tuo file di autenticazione verrà ignorato senza alcun avviso.
Quindi, ecco un esempio completo:
sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn --auth-user-pass pass.txt