[英]Enter openvpn private key password in a bash script
我在 bash 腳本中得到了這個函數:
function start_vpn() {
sudo ip netns exec frootvpn openvpn --config /etc/openvpn/frootvpn.conf &
while ! sudo ip netns exec frootvpn ip a show dev tun0 up; do
sleep .5
done
}
它失敗了,因為它不停地讓我輸入私鑰密碼。 當我手動輸入sudo ip netns exec frootvpn openvpn --config /etc/openvpn/frootvpn.conf
時,我得到了私鑰提示,但在腳本中它不等我輸入它:)
如果您的意思是 sudo 密碼,您可以嘗試
sudo sh -c 'ip netns exec frootvpn openvpn --config /etc/openvpn/frootvpn.conf &'
對於 openvpn 密碼,您可以嘗試要求它從 fifo 讀取它。 然后,您會將您的密碼回顯到 fifo 中。 我沒試過這個。
mkfifo ~/myfifo
sudo sh -c 'ip ... openvpn --askpass ~/myfifo ... &'
然后以交互方式,如果您不希望密碼回顯:
$ stty -echo; cat >~/myfifo; stty echo
type your password
type control-D for eof
這是我在 Linux/Ubuntu 系統上自動輸入兩個密碼的解決方案。 (sudo-pw 和 openvpn-pw。)
在文件/home/user_name/.bashrc
我添加了行:
alias run_openvpn='sudo date < /path/to/sudo_pw_file && sudo openvpn --config /path/to/key_file --askpass /path/to/private_key_file'
在文件 sudo_pw_file 和 private_key_file 中,密碼以純文本形式存儲。 因此存在安全風險。
然后你可以從終端執行exec bash
。
從那時起,您可以使用run_openvpn
從終端建立 vpn 連接。
我在初步步驟中用於輸入 sudo 密碼的sudo date
,以便在其他命令中不要求輸入。
順便說一句:您也可以使用> settings > network
配置您的 vpn 連接,但如果我從那里開始 vpn 連接,它們會干擾。 所以我從終端開始一個,從那里開始一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.