在bash脚本中输入openvpn私钥密码

在bash脚本中输入openvpn私钥密码,bash,Bash,我在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

我在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

嗯,上面写着我:从root@bigbenn(Mon 2015-07-13 14:08:19 CEST):“输入私钥密码:”(PID 7373)需要输入密码。请使用systemd tty ask password agent工具输入密码!对不起,我以为问题出在sudo。我为openvpn添加了一个建议。我用半解决了它,但这意味着我拥有一个我不喜欢的带有密码的文件