我在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
时,我得到了私钥提示,但在脚本中它不等我输入它:)
答案 0 :(得分:1)
如果您的意思是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