搜索

18.2. 使用 SSH 进行远程管理

download PDF
ssh 软件包提供了一个加密的网络协议,可安全地将管理功能发送到远程虚拟化服务器。下面描述的方法使用 libvirt 管理连接(通过 SSH 连接安全地隧道)来管理远程机器。所有身份验证均使用由本地 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 以非特权用户管理本地主机。
  1. 可选:更改用户

    根据需要更改用户。这个示例使用本地 root 用户来远程管理其他主机和本地主机。
    $ su -
  2. 生成 SSH 密钥对

    在使用 virt-manager 的机器上生成一个公钥对。这个示例在 ~/.ssh/ 目录中使用默认密钥位置。
    # ssh-keygen -t rsa
  3. 将密钥复制到远程主机

    不使用密码或密码短语进行远程登录,要求将 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/authorized_keys 文件,以确保还没有添加意外的密钥:
    ssh root@host2.example.com
    根据需要为其他系统重复此操作。
  4. 可选:将密码短语添加到 ssh-agent

    如果需要,将 SSH 密钥的 pass-phrase 添加到 ssh-agent。在本地主机中,使用以下命令添加 pass-phrase(如果有)以启用无密码登录。
    # ssh-add ~/.ssh/id_rsa
    如果 ssh-agent 未在运行,这个命令将无法运行。为避免错误或冲突,请确保您的 SSH 参数设置正确。如需更多信息,请参阅 Red Hat Enterprise System Administration Guide

libvirt 守护进程 (libvirtd)

libvirt 守护进程提供了管理虚拟机的接口。您必须已在您要以这种方式管理的每个远程主机上安装并运行 libvirtd 守护进程。

$ ssh root@somehost
# systemctl enable libvirtd.service
# systemctl start libvirtd.service
配置 libvirtdSSH 后,您应该能够远程访问和管理虚拟机。此时,也应该能够通过 VNC 访问您的 guest。

使用 virt-manager 访问远程主机

可以使用 virt-manager GUI 工具管理远程主机。SSH 密钥必须属于执行 virt-manager 的用户,以便免密码登录正常工作。

  1. 启动 virt-manager
  2. 打开 File zfcp Add Connection 菜单。

    图 18.1. 添加连接菜单

    添加连接菜单
  3. 使用下拉菜单选择虚拟机监控程序类型,然后单击 Connect to remote host 复选框以打开连接方法(本例中为 Remote tunnel over SSH),输入 User nameHostname,然后单击 Connect
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.