自动将用户和密码添加到 openvpn 脚本

Ale*_*ide 9 shell-script vpn openvpn

我有一个工作脚本,它允许我进行 vpn 连接。它看起来像这样:

openvpn --config VPNBook.com-OpenVPN-Euro1/vpnbook-euro1-tcp443.ovpn
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是每次运行此脚本时,我都必须输入公开可用的 vpn 和密码。(别担心,我不会通过免费 VPN 做银行业务或任何严肃的事情,这更适合学习)。

这是他们网站上公开的用户名和密码:

Username: vpnbook

Password: he2qv5h
Run Code Online (Sandbox Code Playgroud)

启动后,脚本提示我输入用户名和密码,现在我需要复制和粘贴。

Tue Aug 15 11:54:51 2017 library versions: OpenSSL 1.0.2l  25 May 2017, LZO 2.08
Enter Auth Username: vpnbook
Enter Auth Password: 
Run Code Online (Sandbox Code Playgroud)

有没有办法让脚本自己输入值?

我试着回应它,但这并不容易。

还是我必须在文件的某个地方编辑命令本身?如果是,有人可以指出我正确的方向吗?

the*_*rpy 5

您有两种选择,一种是使用包含明文用户名和密码的文件(不推荐),另一种是使用证书身份验证。

要在文件中使用用户名和密码,请使用--auth-user-pass <file>where <file>is Jesse_b 建议的文件在第一行包含用户名,在第二行包含密码 (community.openvpn.net/openvpn/wiki/Openvpn23ManPage)。

但是,我认为这是不好的做法(真的!!!!!!!!!),您最好进行证书身份验证,这样,即使您的证书被第三方检索,他们至少也无法在没有 root 密码的情况下更改用户的密码等等,特别是如果你有sudo并且你的用户在sudoers列表中等等......

阅读:https : //openvpn.net/community-resources/how-to/#setting-up-your-own-certificate-authority-ca-and-generating-certificates-and-keys-for-an-openvpn-server和多个客户

您需要发布以下内容:

init config

接下来,初始化 PKI。在 Linux/BSD/Unix 上:

. ./vars
./clean-all
./build-ca
Run Code Online (Sandbox Code Playgroud)

在 Windows 上:

vars
clean-all
build-ca
Run Code Online (Sandbox Code Playgroud)

请注意,在上述序列中,大多数查询参数默认为 vars 或 vars.bat 文件中设置的值。必须明确输入的唯一参数是通用名称。

接下来,我们将为服务器生成证书和私钥。在 Linux/BSD/Unix 上:

./build-key-server server
Run Code Online (Sandbox Code Playgroud)

在 Windows 上:

build-key-server server
Run Code Online (Sandbox Code Playgroud)

生成客户端证书与上一步非常相似。在 Linux/BSD/Unix 上:

./build-key client1
./build-key client2
./build-key client3
Run Code Online (Sandbox Code Playgroud)

在 Windows 上:

build-key client1
build-key client2
build-key client3
Run Code Online (Sandbox Code Playgroud)

请记住,对于每个客户端,请确保在出现提示时键入适当的通用名称,即“client1”、“client2”或“client3”。始终为每个客户端使用唯一的通用名称。

这比使用纯文本用户名和密码的密码更简单,更安全,请相信我!