目前我正在使用以下命令执行身份验证请求以获取服务器证书(FINGERPRINT)和OpenConnect
-Cookie:
openconnect --authenticate --user=<username> "VPN host"
因此,我总是必须在稍后出现的用户提示中输入我的密码。
是否有一个选项可用于将密码传递到OpenConnect
上层命令中?
例如,通过扩展命令...
openconnect --authenticate --user=<username> password=<password> "VPN host"
... ?
挑战在于:
用户RuiFRibeiro的想法只是在命令中回显密码。不幸的是,这在我们的例子中不起作用,因为服务器在到达第二个提示(=密码提示)之前又提供了一个用户提示。
它会这样发生:
第一个用户提示:服务器说
- “请选择是要隧道传输所有流量还是仅传输特定流量。
- “输入
Tunnel all
或Tunnel company
”。
第二个用户提示:服务器在说
- “请输入您的密码。 ”
正如你所看到的,一个简单echo
的问题会给出错误的答案。:-)
对于可能的expect
-script 插入文本之前的真实(确切)服务器请求如下:
第一个提示:
GROUP: [tunnel MyCompany|tunnel all]:
,答案插入应该是tunnel MyCompany
第二个提示:
Password:
,答案插入应该是123456789
通常,VPN 软件不允许为用户输入密码,因为这被认为存在安全风险。
一种可能的解决方案是通过管道输入密码,如下所示:
如果我们谈论的是您对这种编写脚本的方法感兴趣:
openconnect
命令的用户。PS 用您的真实密码替换 YourPassword
这对我有用: