使用顯示器運行 QEMU/KVM:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait
然後我們可以使用socat - UNIX-CONNECT:/my_path/my_fifo
然後鍵入命令進行連接。
簡單方便。
我想將監視器介面公開到本地網路(根據安全方法,可能使用 socat),這是相當安全的。如何保護對顯示器的存取?
我沒有看到任何可用的密碼選項、憑證等。
答案1
您可以利用 SSH 提供的安全性選項,使用 SSH 安全地存取此類套接字。你根本不需要socat
,因為 SSH 允許透過選項轉送套接字到套接字或 tcp 到套接字-L
:
-L [bind_address:]port:host:hostport
-L [bind_address:]port:remote_socket
-L local_socket:host:hostport
-L local_socket:remote_socket
例如,如果您的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 用戶端將僅偵聽本機)。
為了獲得更好的安全性,請使用 SSH 金鑰連接到顯示器。在遠端虛擬化主機上,建立一個擁有rw
該/my_path/my_fifo
物件權限的使用者。建立金鑰對並將公鑰~/.ssh/authorized_keys
以受限方式放入該使用者的檔案中,僅允許轉送:
restrict,port-forwarding,command="/bin/false" ssh-... ..... (the public key string)
若要連接,請使用不指派 shell 且不執行命令的命令,僅對轉送有用:
ssh monitoruser@virtualization-host -i mointor_private_key -L 12345:/my_path/my_fifo -N
最後,用於telnet localhost 12345
存取透過 SSH 轉送的監視器套接字。