我正在使用IPVanish在冲浪时使用代理;像:
sudo openvpn --config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn
现在,我必须输入我的用户名,然后输入我的密码。 我怎样才能将这两个参数作为一个命令传递给我,这样我只使用一个命令并自动传递用户名/密码?
答案 0 :(得分:4)
建议的解决方案的问题在于,所有这些都基于纯文本密码。
我想出了以下bash脚本来解决这个问题:
VPN_USER="your user name"
VPN_PASSWORD="$(sudo kwallet-query -l secrets -r your_password)"
CONFIG_FILE=/tmp/your_vpn.ovpn
sudo bash -c 'openvpn --config '"$CONFIG_FILE"' --auth-user-pass <(echo -e "'"$VPN_USER"'\n'"$VPN_PASSWORD"'")'
它查询密码管理器(kwallet)以获取密码。它还允许您重用 CONFIG_FILE
中的现有配置(如果有的话,只需从中删除 --auth-user-pass
条目)
答案 1 :(得分:3)
之前的回答对我不起作用(仍然要求输入用户名和密码),将您的凭据放入文件(pass.txt)的工作是什么,就像这样
redis.clients.jedis.exceptions.JedisConnectionException: Unknown reply: H
并使用username@email.com
password
调用openvpn。
答案 2 :(得分:2)
以下是@Fluffy的答案(很遗憾,我没有足够的声誉来发表评论)
有一个不错的bash技巧,可以消除对pass.txt文件的需要
的
openvpn ... --auth-user-pass pass.txt
pass.txt在哪里
opvn_user
ovpn_pass
一个可以使用
openvpn ... --auth-user-pass <(echo -e "opvn_user\novpn_pass")
答案 3 :(得分:2)
在 OpenVPN 2.5.0 上,将 --auth-user-pass 作为命令行参数传递对我不起作用。但是在 .ovpn 文件中添加 auth-user-pass 之前的部分做了这里解释的技巧:https://forums.openvpn.net/viewtopic.php?t=11342
答案 4 :(得分:1)
您可以使用OpenVPN的--user
参数以及--askpass stdin
。然后你只需要将密码传递给OpenVPN的标准输入。
示例:
echo $PASS | openvpn ... --user $USER --askpass stdin
然而,这并不是真正安全,因为密码作为参数传递给命令,因此其他应用程序可以访问。
为避免这种情况,您只需使用文件:
echo $PASS > password.txt
chmod 600 password.txt
openvpn ... --user $USER --askpass password.txt
注意:将...
替换为您的OpenVPN参数(此处为--config /home/ipv/conf/ipvanish-CA-Toronto-tor-a09.ovpn
)
答案 5 :(得分:1)
我在这里并不陌生,但这是我的第一项贡献
这就是我所做的:(我是菜鸟,欢迎提出建议)
在我看来,您需要一个具有所需配置的配置文件.ovpn,您需要创建一个包含用户名和密码的新文件,您可以这样做
vi pass.txt
添加此行,然后保存并退出
username
password
现在转到.ovpn配置文件并进行编辑,应该有一行读取内容 auth-user-pass
添加您的用户名和密码文件
auth-user-pass pass.txt
好的,现在您只需执行.ovpn文件即可对VPN进行身份验证
如果您需要执行RDP之类的操作,则还有一种无需每次都使用#!/ bin / bash脚本输入密码即可进行身份验证的方法,请告诉我是否需要帮助:)