一般在 AWS 上使用 macOS EC2 實例時,通常會需要透過 VNC Client 來進行連線操作。在有些環境下,可能不是這麼適合來安裝 VNC Client,這時就可以透過 noVNC 來安裝基於 html5 的網頁 Console 囉。
啟用 macOS 的 Screen Sharing 功能
AWS EC2 目前提供了幾個啟用 Screen Sharing 的官方文件,但其內容大同小異:
- 如何透過 GUI 存取 Amazon EC2 Mac 執行個體?
- Amazon EC2 Mac 執行個體 - 使用 Apple 遠端桌面連線至您的執行個體
- EC2 Mac Workshop - Screen Sharing
參考其中一篇來透過 SSH 啟用 Screen Sharing:
- 設定
ec2-user
密碼以提供 VNC 登入。
sudo passwd ec2-user
Changing password for ec2-user.
New password:
Retype new password:
################################### WARNING ###################################
# This tool does not update the login keychain password. #
# To update it, run `security set-keychain-password` as the user in question, #
# or as root providing a path to such user's login keychain. #
###############################################################################
- 啟用 Screen Share 服務:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate -configure -access -on \
-restart -agent -privs -all
Starting...
Screen recording might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Screen control might be disabled. Screen Sharing or Remote Management must be enabled from System Settings or via MDM.
Activated Remote Management.
Stopped ARD Agent.
ec2-user: Set user remote control privileges.
ec2-user: Set user remote access.
Done.
- 安裝並啟用 noVNC 在 macOS 中,只需要幾行簡單的指令就可以安裝 noVNC 了:
git clone https://github.com/novnc/noVNC.git
cd noVNC/
./utils/novnc_proxy &
- 建立 Client 與 macOS 之間的 SSH Tunnel
由於 noVNC 預設是沒有 SSL 的,如果直接透過 Security Group 允許 Client 直接存取
6080
,noVNC 會因為安全性為由而連線失敗。所以這邊必須使用 SSH Tunnel 來轉發 noVNC 的 Port 到localhost
:
ssh -L 6080:localhost:6080 ec2-user@<EC2 Instance IP> -i .ssh/key.pem
- 打開
http://localhost:6080/vnc.html
就可以直接使用ec2-user
的身分來登入了,如果遇到游標消失,可從左側的設定中打開:Settings => Advanced => Show Dot when No Cursor
,如果需要調整解析度的話,可以看這一篇官方文件:修改 Mac 執行個體上的 macOS 螢幕解析度。