如何在机器运行时更​​改 libvirt+kvm+qemu 虚拟机的 SPICE 密码?

如何在机器运行时更​​改 libvirt+kvm+qemu 虚拟机的 SPICE 密码?

我有一台虚拟机,它运行在带有 libvirt 的 KVM+QEMU 堆栈上。该虚拟机使用 qxl 或 virtio 显示器,并且有一个 Spice Graphics 在端口上监听。

我想在机器运行时更​​改用于从 virt-manager 或 remote-viewer 访问该机器的密码(在 SPICE 中他们称之为“ticket”)。旧密码应立即失效,并且只有使用新密码才能建立新的 SPICE 连接。

答案1

为了能够在不停止/启动 VM 的情况下更改 SPICE 访问密码,VM 必须已配备密码。 如果不重新启动,则无法添加/删除 SPICE 密码。

在这个前提下,我们有两个选择来实现这一点:

A:使用 virt-xml 解决方案

使用命令virt-xml [-c qemu+ssh://host/system] name-of-the-vm --edit all --graphics password=verys3cr3t --update

B:使用 virsh 的解决方案

  1. virsh [-c qemu+ssh://host/system] dumpxml --security-info name-of-the-vm > output.xml
  2. 找到块<graphics type='spice' port='5900' autoport='no' listen='0.0.0.0' passwd='testpass'>...</graphics>并将其隔离,丢弃其余部分,将图形 XML 块保存在graphics.xml
  3. 将属性更改passwd为所需的新密码
  4. virsh [-c qemu+ssh://host/system] update-device name-of-the-vm graphics.xml

相关内容