第 5 章 客户机的远程管理
本节介绍如何使用 ssh 或 TLS 和 SSL 远程管理客户机。有关 SSH 的更多信息,请参见《 Red Hat Enterprise Linux 部署指南》。
5.1. 使用 SSH 进行远程管理
ssh 包提供了加密网络协议,可安全地向远程虚拟服务器发送管理功能。上述方法使用通过 SSH 连接安全地隧道化的 libvirt 管理连接来管理远程机器。所有验证都使用本地 SSH 代理收集的 SSH 公钥加密和密码或密码短语完成。此外,每个 guest 的 VNC 控制台也通过 SSH 进行隧道化。
请注意,使用 SSH 远程管理虚拟机时出现问题,包括:
- 您需要 root 登陆到远程机器来管理虚拟机,
- 初始连接设置过程可能很慢,
- 无法对所有主机或客户机撤销用户密钥的标准或简单方法,
- SSH 无法很好地扩展更大的远程机器。
注意
Red Hat Virtualization 允许远程管理大量虚拟机。详情请查看 Red Hat Virtualization 文档。
ssh 访问需要以下软件包:
- openssh
- openssh-askpass
- openssh-clients
- openssh-server
为 virt-manager配置无密码管理的 SSH 访问
以下说明假设您从头开始启动,并且尚未设置 SSH 密钥。如果您将 SSH 密钥设置并复制到其它系统中,您可以跳过这个过程。
重要
SSH 密钥依赖于用户,只能供其所有者使用。密钥的所有者是生成它的用户。键不能共享。
virt-manager 必须由拥有要连接到远程主机的密钥的用户运行。这意味着,如果远程系统由非 root 用户 virt-manager 管理,则必须以非特权模式运行。如果远程系统由本地 root 用户管理,则 SSH 密钥必须由 root 所有并创建。
您不能使用 virt-manager 以非特权用户管理本地主机。
可选:更改用户
根据需要更改用户。本示例使用本地 root 用户来远程管理其他主机和本地主机。$ su -
生成 SSH 密钥对
使用机器 virt-manager 上的公钥对。本例使用~/.ssh/
目录中的默认密钥位置。# ssh-keygen -t rsa
将密钥复制到远程主机
不带密码或密码短语进行远程登录,需要向受管理的系统分发 SSH 密钥。使用 ssh-copy-id 命令,在提供的系统地址(示例中为root@host2.example.com
)将密钥复制到 root 用户。# ssh-copy-id -i ~/.ssh/id_rsa.pub root@host2.example.com root@host2.example.com's password:
现在,尝试使用 ssh root@host2.example.com 命令登录到机器,并在.ssh/authorized_keys
文件中检查以确保尚未添加意外密钥。根据需要,对其他系统重复此操作。可选:在 ssh-agent 中添加密码短语
下面的说明描述了如何在现有 ssh-agent 中添加密码短语。如果 ssh-agent 未在运行,它将无法运行。为了避免错误或冲突,请确保正确设置了 SSH 参数。如需更多信息,请参阅 Red Hat Enterprise Linux 部署指南。如果需要,将 SSH 密钥的密语添加到 ssh-agent。在本地主机上,使用以下命令添加密码短语(如果有)来启用免密码登录。# ssh-add ~/.ssh/id_rsa
SSH 密钥被添加到远程系统。
libvirt 守护进程(libvirtd
)
libvirt
守护进程提供用于管理虚拟机的接口。您必须在需要管理的每个远程主机中安装并运行 libvirtd
守护进程。
$ ssh root@somehost # chkconfig libvirtd on # service libvirtd start
配置
libvirtd
和 SSH 后,您应能够远程访问和管理虚拟机。此时您应当能够使用 VNC 访问您的 guest。
使用 virt-manager 访问远程主机
远程主机可以使用 virt-manager GUI 工具进行管理。SSH 密钥必须属于执行 virt-manager 的用户,以便免密码登录才能工作。
- 启动 virt-manager。
- 打开-> 菜单。
图 5.1. 添加连接菜单
- 使用下拉菜单选择管理程序类型,然后单击""复选框以打开"连接方法"(在本例中为 Remote tunnel over SSH),然后输入所需的 和 ,然后单击 。