使用 Debian 连接远程 Virt-Manager 时报错
问题
报错如下
Unable to connect to libvirt qemu+ssh://test@102.102.102.102/system.
Authentication unavailable: no polkit agent is available to authenticate action "org.libvirt.unix.manage"
这是因为宿主机使用非 root 用户启动服务,远程登录时默认禁止非 root 用户访问 libvirt 服务,可以通过 polkit 策略定制 libvirt 服务的特殊权限,或者将受限用户加入 libvirt 进程的用户组。
处理
注意:以下所有操作在远程的母机上进行操作!
补充依赖
为了方便连接请先进行免密认证,然后安装
sudo apt install ssh-askpass
确定用户
先确定当前用户
whoami
得到当前登录的用户名,比如 uos
确定用户组
id uos
取得用户所属的组
定制 Polkit 权限
进入权限文件夹
cd /etc/polkit-1/localauthority/50-local.d/
创建一个任意名称的以 pkla 为后缀的文件,例如 50-andyx-libvirt-group-access.pkla
写入以下内容
[libvirt group Management Access]
Identity=unix-group:用户组
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
保存即可,注意替换掉所查的用户组
小贴士:此权限文件为立即生效,无需重启服务。
定制用户组
将用户添加至 libvirt 服务所属组内
usermod -a -G libvirt uos
添加完毕后重启 Virt-Manager 连接即可。
异常处理
如果打开控制台时报错 Error opening Spice console, SpiceclientGtk missing
是因为系统缺少依赖所致。
sudo apt install gir1.2-spiceclientgtk-3.0
安装后重启程序即可。
附录
参考链接
- Setup-Local-connection - WebVirtMgr Github
- 关于kvm使用local socket 连接报错:“authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'” - CNBLOGS
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2021-03-03 11:14 AM