Mengikuti jawaban @Fluffy (sayangnya saya tidak memiliki cukup reputasi untuk berkomentar)
Ada trik bash yang bagus yang dapat menghilangkan kebutuhan akan file pass.txt
Selain dari
openvpn ... --auth-user-pass pass.txt
di mana pass.txt berada
opvn_user
ovpn_pass
seseorang dapat menggunakan
openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
harap perhatikan \n
penggunaan antara nama pengguna dan kata sandi
Masalah dengan solusi yang disarankan adalah semuanya didasarkan pada kata sandi teks biasa.
Saya datang dengan skrip bash berikut untuk menyelesaikan masalah:
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"'")'
Ini menanyakan pengelola kata sandi (kwallet) untuk mendapatkan kata sandi. Anda juga dapat menggunakan kembali konfigurasi yang ada di CONFIG_FILE
(hapus saja --auth-user-pass
entri darinya jika ada)
Jawaban sebelumnya tidak berhasil untuk saya (masih meminta nama pengguna dan kata sandi), yang berhasil adalah memasukkan kredensial Anda ke dalam file (pass.txt), seperti ini
[email protected]
password
dan memanggil openvpn dengan --auth-user-pass pass.txt
.
sumber
Perhatikan bahwa di beberapa versi OpenVPN (mis. OpenVPN 2.4.11) terdapat bug di mana Anda harus menggunakan --config
terlebih dahulu lalu --auth-user-pass
atau file autentikasi Anda akan diabaikan tanpa peringatan apa pun.
Jadi, inilah contoh lengkapnya:
sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn --auth-user-pass pass.txt