Ubuntu 22.04下如何禁用VPN连接时的严格密码提示焦点锁定
Ubuntu 22.04下如何禁用VPN连接时的严格密码提示焦点锁定
这个问题我之前帮不少朋友解决过,确实是NetworkManager默认的安全机制在搞事情——它依赖polkit做权限验证,默认会强制把焦点锁定在密码提示窗口上,防止后台进程窃取你的输入内容,但这也导致你没法切换到Bitwarden或Authy这类工具复制TOTP,确实挺闹心的。下面给你两种实用的解决办法:
方法一:修改polkit规则解除焦点锁定
这是最直接的方式,通过自定义polkit规则来放宽NetworkManager的权限验证要求,从而取消提示框的焦点锁定:
- 首先创建一个自定义规则文件,打开终端输入:
sudo nano /etc/polkit-1/rules.d/50-nm-vpn-no-focus.rules - 在编辑器里粘贴以下内容:
polkit.addRule(function(action, subject) { if (action.id == "org.freedesktop.NetworkManager.settings.modify.system" || action.id == "org.freedesktop.NetworkManager.vpn.connection-start") { return polkit.Result.YES; } }); - 保存并退出编辑器(按
Ctrl+O确认保存,Ctrl+X退出),然后重启polkit服务让规则生效:sudo systemctl restart polkit - 注意:这个操作会略微降低权限验证的安全性,但对于个人桌面用户来说,风险几乎可以忽略不计。如果之后发现规则没生效,你可以试试更宽泛的规则写法:
polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("sudo")) { return polkit.Result.YES; } });
方法二:用命令行连接VPN绕开GUI焦点问题
如果不想修改系统配置,你可以完全绕开GUI的提示框,用终端命令来连接VPN:
- 先查看你已配置的VPN连接名称:
nmcli connection show - 找到你的OpenVPN连接名称(比如叫
Work-VPN),然后用命令启动连接:nmcli connection up "Work-VPN" - 这时候密码和TOTP的输入提示会出现在终端里,你的GUI桌面不会被锁定,完全可以正常切换到密码管理器复制内容,再切回终端粘贴输入。
- 要是觉得每次输命令麻烦,你可以把这个命令做成桌面快捷方式,或者添加到自定义快捷键里,用起来就和点击GUI按钮一样方便了。
备注:内容来源于stack exchange,提问作者Muzgar15
相关产品推荐
相关产品推荐

