快轉到主要內容

Virt Manager SSH連線到遠端QEMU/KVM虛擬機的桌面

分類   資訊科技 虛擬機與容器技術
標籤   Libvirt Remote Desktop
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

從Linux或Windows電腦,存取遠端Linux的QEMU/KVM虛擬機。

情況描述:你在Linux電腦用 Virt Manager建立了QEMU/KVM虛擬機,而你想要用另一台電腦存取虛擬機桌面,可以怎麼做?

除了用SSH遠端登入,再用virsh指令控制QEMU/KVM虛擬機之外,你也可以透過相容Libvirt API的前端連線到遠端Linux虛擬機,這樣你有圖形列表能一覽虛擬機的運作狀態了。

即使遠端Linux是headless server,照樣可以顯示虛擬機桌面!有安裝Spice Tools還可以讓遠端虛擬機跟本機電腦共享剪貼簿。

1. 安裝相容Libvirt API的前端
#

得尋找相容Libvirt API的前端管理器。

如果本機端是Linux,那就用Virt Manager (Virtual Machine Manager,虛擬機器管理器),很多Linux發行版都有收,比如Ubuntu:

sudo apt install virt-manager

需要網頁的解決方案請嘗試 Cockpit,將它部署在遠端Linux伺服器上,就可以透過任意系統的網頁瀏覽器存取了。

2. 將SSH公鑰複製到遠端電腦
#

本步驟要執行免密碼登入遠端SSH的操作,因為Virt Manager沒有地方讓你打密碼。

  1. 登入遠端Linux電腦,安裝OpenSSH伺服器和ssh-keypass套件
sudo apt install openssh-server ssh-askpass
  1. 啟動SSH服務,並開啟防火牆允許連入
sudo systemctl enable --now sshd

sudo ufw allow ssh

sudo ufw reload
  1. 回到本機端Linux,安裝SSH服務
sudo apt install openssh-client
  1. 接著給目前的一般使用者產生SSH公鑰(不使用root的原因是我遠端Linux的使用者有加入Libvirt群組,不需要root也可以操作Libvirt)
ssh-keygen -t rsa
  1. 然後複製本機的公鑰到遠端電腦,這樣日後就可以免密碼登入
 ssh-copy-id -i ~/.ssh/id_rsa.pub  使用者帳號@遠端IP
  1. 測試SSH連線到遠端Linux,應該不用密碼了。
 ssh 使用者帳號@遠端IP

3. 讓Virt Manager連線到遠端
#

  1. 開啟Virt Manager,點選新增連線

  2. 輸入SSH連線資訊。因為剛才已經複製公鑰,故無需密碼即可連線。

  3. 然後Virt Manager就會列出遠端的虛擬機列表了。

4. 換用VNC改善遠端桌面延遲
#

Virt Manager預設是用SPICE顯示遠端虛擬機的畫面,但延遲高,不適合遠端使用,改用VNC在低網速下表現較好。

如果虛擬機有GPU直通的話,那麼 Moonlight + Sunshine會是更好選擇。

  1. 比如,編輯虛擬機的XML(Virt Manager首頁 → 編輯 → 偏好設定→ 啟用XML編輯),移除所有帶有spice的區塊

  2. 然後新增硬體,點選圖形,選取VNC

  3. 這樣Virt Manager開機後就會改用VNC顯示畫面。

參考資料
#

相關文章

Linux KVM啟用巢狀虛擬化,在虛擬機裡面跑虛擬機
分類   資訊科技 虛擬機與容器技術
標籤   Libvirt QEMU-KVM Linux
Spice Guest Tools用法,QEMU/KVM虛擬機自動縮放解析度、共享資料夾
分類   資訊科技 虛擬機與容器技術
標籤   Libvirt QEMU-KVM
如何備份Linux Virt Manager所建立的QEMU/KVM虛擬機映像檔
分類   資訊科技 虛擬機與容器技術
標籤   Libvirt

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請貼Imgur或Postimages。