第 13 章 虚拟客户端的远程管理

13.1. 使用 SSL 进行远程管理

13.2. 使用 TLS 和 SSL 进行远程管理

13.3. 传输模式

这部分将论述如何使用 ssh、TLS 和 SSL 远程管理您的虚拟化客户端。

13.1. 使用 SSL 进行远程管理

ssh 软件包提供加密网络协议,可向远程虚拟化服务器安全发送管理功能。本方法使用 libvirt 通过 SSH 连接安全管理远程机器。所有验证都通过 SSH 公钥加密法和密码或者由您的本地 SSH 代理获得的密码短语进行。另外,每个客户端虚拟机的 VNC 控制台都将通过 SSH 连接。

SSH 通常是默认配置的,这样您就可以设定 SSH 密钥,并且不需要额外的防火墙规则访问管理服务或者 VNC 控制台。

Be aware of the issues with using SSH for remotely managing your virtual machines, including:

  • 您需要以根用户身份登录访问远程机器来管理虚拟机,

  • 最初的连接设定过程可能很慢,

  • 没有一种标准或者简单的方法来撤销所有主机或者客户端中的用户密钥,且

  • ssh 在处理大量远程机器时效果并不好。

virt-manager 配置 SSH 访问。

以下操作假设您是从头开始的,且还没有设定 SSH 密钥。

  1. 您需要在您运行 virt-manager 的机器中有一个公钥对。如果您已经配置了 ssh,请跳过这个命令。

    1. $ ssh-keygen -t rsa
  2. 要允许远程登录,virt-manager 需要在每个运行 libvirt 的远程机器中有一个公钥副本。请使用 scp 命令从您要用来进行远程管理的机器中复制文件 $HOME/.ssh/id_rsa.pub

    1. $ scp $HOME/.ssh/id_rsa.pub root@somehost:/root/key-dan.pub
  3. 文件复制完成后,请以根用户身份使用 ssh 命令连接到远程机器并将您复制的文件添加到认证的密钥列表中。如果远程主机中的根用户还没有认证的密钥列表,请确定正确设定了该文件的权限。

    1. $ ssh root@somehost
    2. # mkdir /root/.ssh
    3. # chmod go-rwx /root/.ssh
    4. # cat /root/key-dan.pub >> /root/.ssh/authorized_keys
    5. # chmod go-rw /root/.ssh/authorized_keys
    6.  
libvirt 守护进程(libvirtd

libvirt 守护进程提供管理虚拟机的界面。您应该使用安装的 libvirtd 守护进程并在每个需要您管理的远程主机中运行该进程。使用 Fedora kernel-xen 软件包需要 speci TODO。

  1. $ ssh root@somehost
  2. # chkconfig libvirtd on
  3. # service libvirtd start
  4.  

配置完 libvirtSSH 后,您应该可以远程访问并管理您的虚拟机。此时您还应该可以使用 VNC 访问您的客户端。