5.5. 设置对远程虚拟化主机的简单访问
当使用 libvirt 工具在远程主机系统上管理虚拟机时,建议使用 -c qemu+ssh://root@hostname/system 语法。例如,要在 192.0.2.1 主机上以 root 用户身份使用 virsh list 命令:
但是,您可以通过修改 SSH 和 libvirt 配置来删除完整指定连接详情的需要。例如:
要进行改进,请按照以下步骤操作。
流程
使用以下详细信息编辑
~/.ssh/config文件,其中 host-alias 是与特定远程主机关联的短名称,以及 root@192.0.2.1 的别名,hosturl 是主机的 URL 地址:vi ~/.ssh/config
# vi ~/.ssh/config Host example-host-alias User root Hostname 192.0.2.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下详情编辑
/etc/libvirt/libvirt.conf文件,example-qemu-host-alias 是一个主机别名,QEMU 和 libvirt 工具将用来为qemu+ssh://192.0.2.1/system与预期主机 example-host-alias 进行关联:vi /etc/libvirt/libvirt.conf
# vi /etc/libvirt/libvirt.conf uri_aliases = [ "example-qemu-host-alias=qemu+ssh://example-host-alias/system", ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确认通过在本地系统上使用基于 libvirt 的工具,并添加
-c qemu-host-alias参数,您可以来管理远程虚拟机。这会在远程主机中使用 SSH 自动执行命令。例如,验证以下 192.0.2.1 远程主机上列出的虚拟机,在前面的步骤中到其的连接被设置为 example-qemu-host-alias :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意除了
virsh之外,-c(或--connect)选项以及上述远程主机访问配置也可以由以下工具使用:
后续步骤
如果要在单一远程主机中只使用 libvirt 工具,您也可以为基于 libvirt 的实用程序设置特定的连接作为默认目标。但是,如果您也要管理本地主机或不同远程主机上的虚拟机,则不建议这样做。
您可以编辑
/etc/libvirt/libvirt.conf文件,并将uri_default参数的值设置为 example-qemu-host-alias 来作为默认 libvirt 目标。These can be used in cases when no URI is supplied by the application (@uri_default also prevents probing of the hypervisor driver).
# These can be used in cases when no URI is supplied by the application # (@uri_default also prevents probing of the hypervisor driver). # uri_default = "example-qemu-host-alias"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,所有基于 libvirt 的命令都会在指定的远程主机中自动执行。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 连接到远程主机时,您可以避免向远程系统提供 root 密码。要做到这一点,请使用以下一个或多个方法:
- 设置对远程主机的基于密钥的 SSH 访问
- 使用 SSH 连接多路复用连接到远程系统
- 身份管理中的 Kerberos 身份验证
-
可以使用
-c(或--connect)选项来运行virt-install,
远程主机上的 virt-viewer 和 virsh 命令。