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

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

我连接到需要通过以下方式进行身份验证的 VPN 服务器

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

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

我将登录名和密码添加到文件中,并/etc/openvpn/server.ovpn使用以下代码更新配置

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

我不再需要输入密码(=确定)。

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

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

这次,系统提示我输入凭证。为什么会这样?

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

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

答案1

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

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

答案2

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

但只是为了确定:启动 OpenVPN 连接的用户是否被允许读取它?

相关内容