现在搜索和工作2-3天后,我希望你能帮忙...
我想在我的程序中使用openconnect,并且auth有2个解决方案
1 - 从用户使用并传递(但传递命令行没有任何选项,只有标准输入可以输入传递)
2 - 从cookie中使用(但openconnect不能与我一起使用cookie!)
对于Cookie,我这样做
- 使用post方法向服务器发送用户
-server要求输入密码
- 使用post方法向服务器发送密码
- 如果一切正常并且auth id =成功
-read标题并获取cookie
打开命令行并将ip和cookie发送到openconenct
和错误!
创建SSL连接失败
命令行代码
openconnect.exe vpn.server.ip --no-cert-check -C "webvpn=BPlUDg9oaTN2uQQ0DQvH7QopD3x5NahiCHQgTqKQ7KPJg38dSuvqLmYIo9Jskig; Secure,webvpnc=; expires=Thu, 01 Jan 1970 22:00:00 GMT; path=/; Secure,webvpnc=bu:/&p:t&iu:1/&sh:7350D46A8EE85D06&lu:/+CSCOT+/translation-table?textdomain%3DAnyConnect%26type%3Dmanifest&fu:profiles%2F/etc/ocserv/profile.xml&fh:6B5181182D2B5483FBB8D2AA1BCBACC9A70E2BA3; path=/; Secure"
用于发送用户并使用从C#
使用的post方法传递 2 - 对于用户和传递我做这项工作
使用命令行进行自动填充输入,使用此代码
type password | openconnect.exe vpn.server.ip -u username --no-cert-check
和
password | openconnect.exe vpn.server.ip -u username --no-cert-check
和
openconnect.exe vpn.server.ip -u username --no-cert-check < pas.txt
再次出错!
密码:ReadConsole()失败:句柄无效。
现在我想知道我的代码中有什么问题?
还是有更好的接受cookie或自动填充输入的解决方案?
如果您有任何想法,请告诉我。
谢谢和亲切的问候。答案 0 :(得分:2)
在ubuntu中你可以使用它:
openconnect --script ./vpnc.sh target-domain --no-cert-check -u username --passwd-on-stdin < pass.txt
希望这有帮助。
答案 1 :(得分:2)
在便利性和安全性之间需要权衡取舍。考虑到安全性,不建议自动填充用户名和密码。
如果您需要使用openconnect进行自动连接的便利,这里是一个简单的示例步骤:
my_list = []
for _ in range(n):
my_list.append(0)
仅包含密码:
mypass.txt
mysupersecretpassword
包含两行命令:
myscript.sh
openconnect --protocol=gp vpn.mycompany.com --user=abc123 --passwd-on-stdin < mypass.txt
./myscript.sh
以使脚本永久循环,从而建立持久的VPN连接。
在终端行中:
./myscript.sh
以chmod +x myscript.sh
特权运行脚本
sudo
要退出循环,只需按
sudo ./myscript.sh
为提高安全性,您可以使过程变得不那么简单:
将您的脚本和密码文件放在只有CTRL + C
级用户才能访问的受保护/隐藏目录中;
例如,使用Linux root
对明文密码文件进行加密,并制作另一个脚本来解密和读取密码,但是您仍然必须输入加密/解密密码。