Windows上的OpenVPN --auth-user-pass FILE选项

时间:2009-07-29 22:07:29

标签: c# windows credentials openvpn

如果您尝试通过--auth-user-pass开关从文件传递用户名/密码到OpenVPN,则会出现以下错误:

"Sorry, 'Auth' password cannot be read from a file."

至少他们很有礼貌。

所以我们的解决方法是在获取Auth Username:和Auth Password:提示时(这是在C#中)以编程方式写入“standard in”。

时机上的某些内容并非100%可靠,所以我一直在寻找一种方法,以不同的方式将凭据传递给OpenVPN,并发现了这篇文章:OpenVPN Post

它表示您可以使用--enable-password-save选项重新编译源代码。有没有人能够做到这一点?

我的最后一个问题是:如何在客户端将auth用户名/密码传递给openvpn.exe? OpenVPNGUI会以某种方式做到这一点(也许我们可以复制他们做的事情)?

4 个答案:

答案 0 :(得分:1)

可以使用以下DOS命令通过脚本打开VPN连接(但不建议这样做,因为密码未加密)

$openvpn.exe config.ovpn < username < password

答案 1 :(得分:1)

请注意!如果以GUI“C:\ Program Files \ OpenVPN \ config \ name.ovpn”启动,则param auth-user-pass 不起作用

制作启动文件start_openvpv.cmd(+链接到“以管理员身份运行”),内容为:

cd C:\Users\Name\Documents\VPN
"C:\Program Files\OpenVPN\bin\openvpn.exe" --config C:\Users\Name\Documents\VPN\myvpnconfig.ovpn --auth-user-pass "C:\Users\Name\Documents\VPN\pass.txt"

pass.txt:

yourusername
yourpassword

或者将行放到name.ovpn中,如上面的messege:

auth-user-pass pass.txt

+ start_openvpv.cmd:

cd C:\Users\Name\Documents\VPN
"C:\Program Files\OpenVPN\bin\openvpn.exe" --config C:\Users\Name\Documents\VPN\myvpnconfig.ovpn

答案 2 :(得分:0)

事实证明问题不在标准中。

我正在使用一些锁定,如果进程在写入标准的过程中退出,可能会出现死锁。

以这种方式发送密码没有问题。

答案 3 :(得分:-2)

对于Openvpn的自动身份验证,您必须修改config.ovpn文件。

- 转到OpenVPN \ config目录并编辑.ovpn文件

- 将此行添加到配置文件 - &gt; auth-user-pass password.txt

- 然后创建password.txt文件并写入:

yourusername
yourpassword

- 执行这些步骤后,您的openvpn将自动连接。