我有一个工作脚本,它允许我进行 VPN 连接。它看起来像这样:
openvpn --config VPNBook.com-OpenVPN-Euro1/vpnbook-euro1-tcp443.ovpn
一切都很好,但每次运行此脚本时我都必须输入公开可用的 VPN 和密码。 (别担心,我不会通过免费 VPN 做银行业务或任何严肃的事情,这更多的是为了学习)。
这是其网站上公开的用户名和密码:
Username: vpnbook
Password: he2qv5h
启动后,脚本提示我输入用户名和密码,现在我需要复制和粘贴。
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:
有没有办法让脚本自己输入值?
我尝试回显它,但这并不容易。
或者我是否必须在文件中的某个位置编辑命令本身?如果是,有人可以指出我这样做的正确方向吗?
答案1
您有两种选择,一种是使用包含明文用户名和密码的文件(不推荐),另一种是使用证书身份验证。
要在文件中使用用户名和密码,请使用--auth-user-pass <file>
where <file>
,因为 Jesse_b 建议在第一行包含用户名,第二行包含密码 (community.openvpn.net/openvpn/wiki/Openvpn23ManPage)。
但是,我认为这是不好的做法(真的!!!!!!!!!),你最好进行证书身份验证,这样,即使你的证书被第3方检索,他们至少将无法更改用户的密码而无需 root 密码以及更多其他操作,特别是如果您有sudo
并且您的用户在sudoers
列表中等...
您需要发出以下信息:
init config
接下来,初始化 PKI。在 Linux/BSD/Unix 上:
. ./vars
./clean-all
./build-ca
在 Windows 上:
vars
clean-all
build-ca
请注意,在上述序列中,大多数查询参数默认为 vars 或 vars.bat 文件中设置的值。唯一必须明确输入的参数是公用名称。
接下来,我们将为服务器生成证书和私钥。在 Linux/BSD/Unix 上:
./build-key-server server
在 Windows 上:
build-key-server server
生成客户端证书与上一步非常相似。在 Linux/BSD/Unix 上:
./build-key client1
./build-key client2
./build-key client3
在 Windows 上:
build-key client1
build-key client2
build-key client3
请记住,对于每个客户端,请确保在出现提示时键入适当的公用名称,即“client1”、“client2”或“client3”。始终为每个客户使用唯一的通用名称。
这比使用纯文本用户名和密码的密码更简单,也更安全,请相信我!