我有一台虚拟机,它运行在带有 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 的解决方案
virsh [-c qemu+ssh://host/system] dumpxml --security-info name-of-the-vm > output.xml
- 找到块
<graphics type='spice' port='5900' autoport='no' listen='0.0.0.0' passwd='testpass'>...</graphics>
并将其隔离,丢弃其余部分,将图形 XML 块保存在graphics.xml
- 将属性更改
passwd
为所需的新密码 virsh [-c qemu+ssh://host/system] update-device name-of-the-vm graphics.xml