星期日, 3月 07, 2021

如何在 multipass VM內執行 GUI 應用程式

multipass 是 Canonical 所推出的一個輕量級 VM 管理工具,它跨平台,支援 Linux、Windows 跟 MacOS。

這個工具用一陣子了,相當的好用,缺點是目前只有 Ubuntu 的 VM 可用。之前是想到,既然 multipass shell 是用 ssh 登入,那麼應該要可以 Forward X11 才對。也就是說以 SSH 登入以後,執行 GUI 應用程式,畫面會轉向到目前 Host 的 X Server 。

但試了以後卻不行,請教 Google 以後,Google 告訴我 StackOverflow 上已經有人解答了:18.04 – How to open GUI applications in multipass container(guest = ubuntu, host = ubuntu)? X-Forwarding – Ask Ubuntu

先說明一下我的環境:

  • Ubuntu 20.04
  • 用 snap 安裝 multipass

首先,先取得 ssh key,因為 multipass 是用 snap 安裝的,所以得從 /var/snap/multipass 裏面找到 ssh private key,把它複製到 ~/.ssh/multipassKey 目錄下。

    mkdir ~/.ssh/multipassKey
    sudo cp /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa ~/.ssh/multipassKey/id_rsa

接著變更這個 private key 的權限為 0600,並且變更擁有者

sudo chown user -R ~/.ssh/multipassKey
sudo chmod 0600 ~/.ssh/multipassKey/id_rsa

再來啟動 VM,並且察看 VM 的 IP

multipass start name
multipass ls

最後使用 ssh 登入

ssh -X -i ~/.ssh/multipassKey/id_rsa ubuntu@<my_vm_ip>

就這樣。

沒有留言: