如何使用 2 因子身份验证通过 openvpn 顺利登录?

Wel*_*oud 6 authentication vpn password login openvpn

我有一个通过 Google Authenticator 应用程序设置了 2 因素身份验证的 openvpn。

在连接详细信息中,我填写了用户名密码用户密钥密码为空)。当我第一次登录时,我会弹出一个窗口来填写来自 Google 应用的身份验证代码。但是,在我这样做之后,密码会被应用程序中的这个数字代码覆盖。因此,下次我尝试登录时,会弹出密码窗口,然后是 Google 应用程序的另一个弹出窗口。

这可以以某种方式修复:

  • 保存密码并仅针对 Google 应用显示弹出窗口
  • 保存密码并使用某种脚本/应用程序/hack 以便自动填充来自 Google 的身份验证代码?(所以我不必处理弹出窗口?:))

这是 Ubuntu 19.10 的全新安装

Ale*_*ach 4

这不是解决方案,而是解决方法

指导

  1. 预计 VPN 配置成功。 图像 图像

    注意:选择“存储所有用户的密码” 图像

  2. 在命令行中获取VPN连接列表,并找到目标连接:

    nmcli connection show
    
    Run Code Online (Sandbox Code Playgroud)

    图像

  3. 创建一个 post-down 脚本文件,该文件将在每次连接关闭时运行:

    sudo touch /etc/network/if-post-down.d/overwrite-vpn-password
    
    Run Code Online (Sandbox Code Playgroud)
  4. 将下一个内容放入: /etc/network/if-post-down.d/overwrite-vpn-password

    #!/bin/sh
    
    nmcli connection modify NAME_OR_UUID vpn.secrets password=MY_PASSWORD
    
    Run Code Online (Sandbox Code Playgroud)

    图像

  5. 使文件可执行:

    sudo chmod +x /etc/network/if-post-down.d/overwrite-vpn-password
    
    Run Code Online (Sandbox Code Playgroud)
  6. 完毕!

发生了什么?

当您输入 2FA 代码并且 VPN 连接成功时,它会更新秘密密码。每次关闭任何连接(例如 VPN)时都会执行此脚本,并将使用nmcli和硬编码值修改连接配置的秘密。