经过2-3天的搜索和工作,我希望你能帮助
我想在我的程序中使用from openconnect,对于auth有2个解决方案
1-从用户和通行证使用(但通行证没有任何命令行选项,只有标准输入才能输入通行证)
2-从cookie中使用(但openconnect对我来说不适用于cookie!)
对于Cookie,我这样做
-使用post方法将用户发送到服务器
-服务器请求密码
-使用post方法将密码发送到服务器
-如果一切正常并且auth-id=success
-读取标头并获取cookie
打开命令行并将ip和cookie发送到openconect
和错误!
创建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#使用的邮寄方法
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或自动填充输入?
如果你有什么想法,请告诉我。
谢谢并致以亲切的问候。
openconnect命令行信息
Openconnect自动填充用户名和密码
在便利性和安全性之间有一个权衡。从安全角度来看,不建议自动填充用户和密码。
如果您需要方便地使用openconnect进行自动连接,这里有一个简单的示例步骤:
简单步骤示例
创建明文密码文件
mypass.txt
仅包含密码:
mysupersecretpassword
创建一个脚本来调用openconnect
myscript.sh
包含两行命令:
openconnect --protocol=gp vpn.mycompany.com --user=abc123 --passwd-on-stdin < mypass.txt
./myscript.sh
有意添加第二行CCD_ 5以使脚本永远循环从而创建持久的VPN连接。
使脚本可执行
终端线路内:
chmod +x myscript.sh
运行脚本
使用sudo
权限运行脚本
sudo ./myscript.sh
要退出循环,只需按CTRL + C
为了更安全
为了增加安全性,您可以使过程不那么简单:
-
将您的脚本和密码文件放在受保护/隐藏的目录中,只有
root
级别的用户才能访问; -
加密明文密码文件,并制作另一个脚本来解密和读取密码,例如使用linux
gpg
,但您仍然需要输入加密/解密密码短语。
在ubuntu中,您可以使用以下内容:
openconnect --script ./vpnc.sh target-domain --no-cert-check -u username --passwd-on-stdin < pass.txt
希望这能有所帮助。