导读 最近有两台新的虚拟化主机安装好libvirtd后发现用以前的TCP连接方式会导致webvirtmgr无法和受控主机通信,显示验证失败,大概查了下是yum源中的 libvirt 更新了,默认加密模式变更了,导致使用saslpasswd2 -a libvirt 命令生成的密钥无法通过验证,折腾了下没搞好,就干脆切换到SSH方式进行控制。

系统环境:CentOS Linux release 7.3.1611 (Core)

虚拟化:libvirt 3.2.0 版本

在webvirtmgr服务器(服务端)生成密钥
[root@kvm_master ~] cd /home
[root@kvm_master home] mkdir nginx  #因为nginx用户在创建的时候是设置的sbin/nologin 所以这里需要手动创建家目录
[root@kvm_master home] chown nginx.nginx nginx/
[root@kvm_master home] chmod 700 nginx/ -R
[root@kvm_master home] su - nginx -s /bin/bash  
-bash-4.2$ ssh-keygen   ---期间输入yes后直接回车,回车
-bash-4.2$  touch ~/.ssh/config && echo -e "StrictHostKeyChecking=no\nUserKnownHostsFile=/dev/null" >> ~/.ssh/config
-bash-4.2$  chmod 0600 ~/.ssh/config
在kvm(受控端)服务器上配置webvirt用户
[root@kvm_10 home] useradd webvirtmgr
[root@kvm_10 home] echo "123456" | passwd --stdin webvirtmgr
[root@kvm_10 home] groupadd libvirt
[root@kvm_10 home] usermod -G libvirt -a webvirtmgr
在webvirtmgr服务器(服务端)上,将ssh-key上传到kvm服务器上
[root@kvm_master home] su - nginx -s /bin/bash
-bash-4.2$ ssh-copy-id   webvirtmgr@192.168.0.23
在kvm(受控端)服务器上配置 libvirt ssh授权
[root@kvm_10 home] vim /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla
[Remote libvirt SSH access]
Identity=unix-user:webvirtmgr
Action=org.libvirt.unix.manage
ResultAny=yes
ResultInactive=yes
ResultActive=yes
[root@kvm_10 home] chown -R webvirtmgr.webvirtmgr /etc/polkit-1/localauthority/50-local.d/50-libvirt-remote-access.pkla

重启 libvirtd 服务

[root@kvm_10 home] systemctl restart libvirtd
webvirtmgr 控制台中添加主机

原文来自:https://www.cnops.xyz/archives/1403

本文地址:https://www.linuxprobe.com/kvm-webvirtmgr-ssh.html编辑:吴向平,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/