我有一个需要拆解的旧版虚拟机,它运行着几个盒子并使用 libvirt/qemu/kvm。当我运行时,
virsh -c qemu:///system list
它会提供所有正在运行的实例。然而,每次我尝试访问 libvirt URI 时,qemu+ssh://hostname@ip/system
我都会得到-bash: qemu+ssh://hostname@ip: No such file or directory
。基本上,我想在每个盒子内部进行 ssh 以查看它们内部发生了什么,但我找不到执行此操作的命令。我所能得到的只是盒子的名称,但不是每个盒子正在运行的内容。
我对这些虚拟化工具的经验非常有限。
命令:set -x ; virsh -c qemu+ssh://hostname@ip/system
输出:
host@ubuntu:~$ set -x ; virsh -c qemu+ssh://host@ip/system
+ set -x
+ virsh -c qemu+ssh://host@ip/system
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
其他输出:
host@ubuntu:~$ type virsh
virsh is /usr/bin/virsh
host@ubuntu:~$ set -x ; virsh -c qemu+ssh://host@ip/system list
+ virsh -c qemu+ssh://host@ip/system list
Id Name State
----------------------------------------------------
29 Box-recovery-1 running
38 Box-2 running
39 Box-1 running
40 Box-3 running
41 Box-4 running
42 Box-5 running
43 Box-6 running
44 Box-7 running
45 Box-8 running
46 Box-9 running
47 Box-10 running
错误输出:
host@ubuntu:~$ qemu+ssh://host@ip/system
-bash: qemu+ssh://host@ip/system: No such file or directory
答案1
IIRC,该qemu+ssh://
连接用于通过 SSH 远程连接到 qemu 主机,并且不会在您的来宾中访问 SSH。
在您发布的输出中,您确实通过qemu+ssh://
此命令连接到 qemu virsh -c qemu+ssh://hostname@ip/system
,并且在virsh #
提示符下您将发出 virsh 命令来管理您的来宾,但您应该只需要远程连接到 qemu 主机。看来您在本地连接没有问题,因此现在避免远程连接可能更容易。
您说您想要通过 SSH 连接到每个虚拟机,如果每个虚拟机都运行 SSH,那么它应该像使用有效凭据登录每个虚拟机的 SSH 一样简单。由于您已经可以在本地和远程访问 qemu,因此用于virsh console
检查每个虚拟机可能会更容易,并且不需要在来宾中使用 SSH virsh -c qemu:///system console $VM_NAME
:。根据访客控制台的设置方式,您可能仍然需要用户凭据才能登录。