TL;DR:我似乎太笨了,无法通过 ssh 使用 PolKit 身份验证?
我有两台机器(运行 Fedora),使用 ssh 公钥登录到具有管理权限的用户(组例如wheel
)adm
。
在“服务器”机器上本地登录时,我可以运行virt-manager
以访问该机器上存在的各种虚拟机。但是,当通过ssh -X -C
服务器,我发现virt-manager
立即拒绝连接到虚拟机,并说:
虚拟机管理器连接失败(开启服务器)
无法连接到 libvirt。
身份验证失败:polkit:polkit\56retains_authorization_after_challenge=1 授权需要身份验证,但没有可用的代理。
我尝试过像这样启动它的简单方法:
virt-manager & pkttyagent -p $(pgrep virt-manager)
…但我只剩下:
pkttyagent
保持沉默;virt-manager
一旦我关闭错误对话框就会退出。
有人可以建议一种方法,也许pkttyagent
在运行之前进行注册virt-manager
,或者在注册另一个身份验证代理ssh -X
?
→ 需要注意的是,远程运行virt-manager
根本root
不是一个选项(实际上),因为我有在自己的用户帐户下运行的 VM(qemu
用户模式,可通过 Gnome Boxes 访问)以及系统范围的 VM,并且无法通过访问本地用户定义。即使我一开始root
并不害怕运行 X 应用程序……root
答案1
该命令在我的系统上运行正常:
virt-manager ; pkttyagent --process $(pgrep virt-manager)
答案2
您是否尝试过运行图形代理?例如,lxpolkit
,polkit-gnome-authentication-agent-1
或polkit-kde-authentication-agent-1
。
或者,您可以编写一个 polkit 规则来删除针对特定用户或“wheel”成员的身份验证要求。
(请注意,“adm”不是通常表示“管理权限”;它意味着访问系统日志和会计数据。