命令行-打开连接密码和cookie输入



经过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

为了更安全

为了增加安全性,您可以使过程不那么简单:

  1. 将您的脚本和密码文件放在受保护/隐藏的目录中,只有root级别的用户才能访问;

  2. 加密明文密码文件,并制作另一个脚本来解密和读取密码,例如使用linux gpg,但您仍然需要输入加密/解密密码短语。

在ubuntu中,您可以使用以下内容:

openconnect --script ./vpnc.sh target-domain --no-cert-check -u username --passwd-on-stdin < pass.txt

希望这能有所帮助。

最新更新