从命令行使用密码连接到 VPN

从命令行使用密码连接到 VPN

我可以通过以下方式触发与我的 VPN 的连接

nmcli con up id WORKVPN

但是我有一个 RSA SecurID,它是身份验证的一部分,这意味着我无法存储密码。如果没有密码,网络管理器会弹出 GUI 提示。我希望能够输入密码,或者至少在命令行而不是 GUI 上提示。有办法吗?

答案1

我可以建议几个选择

  • sshpass(警告:我自己还没有尝试过,如果有人在你背后偷看或查看你的历史记录,这是不安全的)

    sshpass -p vpnpassword <your command>
    

它适用于 SSH 连接,尝试一下。

  • 这是一种更实用、更安全的方法。请查看预计,在 Ubuntu 中安装非常简单

    sudo apt-get install expect
    

    编写一个包装脚本,在 bash 脚本中使用 expect

    expect <<- DONE
    expect "<put here what you see in your password prompt> "
    send "<vpn password>\n"
    interact
    DONE
    

答案2

这些命令对我有用:

XAUTH="$(ps -C Xorg -o args= | sed -n 's/.*-auth \(.*\)/\1/p')"
export XAUTHORITY=$XAUTH
export DISPLAY=:0.0
XUSER="$(ps -C nm-applet -o user=)"
su ${XUSER} -c "nmcli c up 'VPN'"

相关内容