使用监视器运行 QEMU/KVM:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait
然后我们可以使用socat - UNIX-CONNECT:/my_path/my_fifo
然后键入命令进行连接。
简单方便。
我想将监视器接口暴露给本地网络(根据安全方法,可能使用 socat),这是相当安全的。如何保护对显示器的访问?
我没有看到任何可用的密码选项、证书等。所以我怀疑我必须依赖 QEMU/KVM 外部的方法。
您可以利用 SSH 提供的安全选项,使用 SSH 安全地访问此类套接字。您根本不需要
socat
,因为 SSH 允许通过选项转发 socket-to-socket 或 tcp-to-socket-L
:例如,如果您的
qemu
进程使用-monitor unix:/my_path/my_fifo,server,nowait
选项运行,请使用ssh virtualization-host -L /tmp/monitor:/my_path/my_fifo
连接,然后连接到本地套接字/tmp/monitor
,或者使用ssh virtualization-host -L 12345:/my_path/my_fifo
和 telnet 到localhost:12345
(在这种情况下,SSH 客户端将仅在 localhost 上侦听)。为了获得更好的安全性,请使用 SSH 密钥连接到监视器。在远程虚拟化主机上,创建一个拥有对象
rw
权限的用户/my_path/my_fifo
。创建一个密钥对并以受限方式将公钥放入该用户的~/.ssh/authorized_keys
文件中,以仅允许转发:要连接,请使用不分配 shell 且不运行命令的命令,仅对转发有用:
最后,用于
telnet localhost 12345
访问通过 SSH 转发的监控套接字。