为什么在配置文件中而不是在命令行中接受身份验证文件?

WoJ*_*WoJ 5 linux openvpn linux-networking

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

/usr/sbin/openvpn --config /etc/openvpn/server.ovpn
Run Code Online (Sandbox Code Playgroud)

这提示我输入登录名/密码(= OK)。

我将登录名和密码添加到文件中并更新了/etc/openvpn/server.ovpn配置

auth-user-pass /etc/openvpn/auth.txt
Run Code Online (Sandbox Code Playgroud)

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

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

/usr/sbin/openvpn --auth-user-pass /etc/openvpn/auth.txt --config /etc/openvpn/server.ovpn
Run Code Online (Sandbox Code Playgroud)

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

凭证文件和配置都是一样的(除了auth-user-pass我在上次测试中删除的那一行)。

OpenVPN 版本是2.3.10并且它是用它编译的enable_password_save=yes(必须是这种情况,因为通过配置文件提供凭据有效,该软件包是从标准的 Ubuntu 存储库安装的)

小智 10

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

sudo openvpn --config "$HOME/your_file.ovpn" --auth-user-pass "$HOME/auth.txt"
Run Code Online (Sandbox Code Playgroud)


dim*_*m-0 0

显然,您的 OpenVPN 用户能够访问身份验证文件(否则从配置文件引用将会失败)。

但要确定的是:您启动 OpenVPN 连接的用户是否允许读取它?