如何在终端的一行中使用用户名和密码运行 openconnect?

Ben*_*ari 25 command-line konsole openconnect 16.04 18.04

openconnect在 Ubuntu 16.04 终端使用,当我想运行它时,我需要进入三个阶段:

  • “是/否”
  • “用户名”
  • “密码”

如何openconnect一行中绕过上述阶段(例如使用openconnect选项)?
是否有任何选项,例如以下行?

sudo openconnect <server-name> --user=<'username'> --pass=<'password'>
Run Code Online (Sandbox Code Playgroud)

我使用openconnect --help并找到了一种填写用户名的方法,但我不知道填写密码和SSL验证。

vid*_*rlo 38

如果您输入man openconnect终端,您将获得描述用法手册页

相关栏目:

-u,--user=NAME
将登录用户名设置为 NAME

--passwd-on-stdin
从标准输入读取密码

此外,您可能需要禁用证书警告:

--no-cert-check
不要求服务器 SSL 证书有效。检查仍将发生,失败将导致警告消息,但连接仍将继续。您不需要使用此选项 - 如果您的服务器具有未由受信任的证书颁发机构签名的 SSL 证书,您仍然可以将它们(或您的私有 CA)添加到本地文件中,并通过 --cafile 选项使用该文件.

或者您可以将证书添加到文件中。

所有这些都可以结合起来:

echo "password" | sudo openconnect server --user=username --passwd-on-stdin --no-cert-check
Run Code Online (Sandbox Code Playgroud)

  • 除了“--no-cert-check”由于安全风险已被删除,上面的答案仍然是正确的。这是现在使用它时的错误消息: --no-cert-check 选项不安全,已被删除。修复您服务器的证书或使用 --servercert 来信任它。(无法在上面发表评论,因为点数不够;mods 随时可以解决这个问题) (9认同)

dux*_*ux2 8

我能够使用以下命令自动执行 sudo 密码、VPN 用户、VPN 密码和二次质询(在 Mac 上测试):

challange=<code> && sudo -S <<< "<sudo_password>" echo I am super user && { printf '<vpn_password>\n'; sleep 1; printf "$challange\n"; } | sudo openconnect <server_name> --user <vpn_username> --passwd-on-stdin
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我有用:

echo mypassword | openconnect --protocol=anyconnect --user=myusername --passwd-on-stdin 
Run Code Online (Sandbox Code Playgroud)