为什么在configuration文件中接受authentication文件,而不是在命令行?

我连接到需要通过身份validation的VPN服务器

/usr/sbin/openvpn --config /etc/openvpn/server.ovpn 

这会提示我inputlogin名/密码(= OK)。

我将login名和密码添加到文件中,并使用更新了/etc/openvpn/server.ovpnconfiguration

 auth-user-pass /etc/openvpn/auth.txt 

我不再提示input密码(= OK)。

我想从命令行提供身份validation凭证,而不是从configuration文件中获取它们:

 /usr/sbin/openvpn --auth-user-pass /etc/openvpn/auth.txt --config /etc/openvpn/server.ovpn 

这一次,我被提示input凭据。 为什么这样?

凭证文件和configuration一样(除了上次testing中删除的auth-user-pass行外)。

OpenVPN版本是2.3.10 ,它的编译方式是enable_password_save=yes (必须是这种情况,因为通过configuration文件提供证书是可行的,软件包是从标准Ubuntu存储库安装的)

显然你的OpenVPN用户能够访问auth文件(否则从configuration文件引用将失败)。

但是可以肯定的是:您启动OpenVPN连接的用户是否允许读取?

你必须改变参数的位置,–auth-user-pass应该在–config参数之后传递,如下所示:

 sudo openvpn --config "$HOME/your_file.ovpn" --auth-user-pass "$HOME/auth.txt"