我在专属主机上有一个 Amazon Elastic Compute Cloud (Amazon EC2) macOS 实例。我想通过图形用户界面 (GUI) 访问该实例。
解决方法
以下步骤适用于 macOS Mojave 10.14.6 和 macOS Catalina 10.15.7
**重要事项:**即使您处于远程会话中,也要运行 SSH 会话。
要通过 GUI 访问您的 macOS EC2 实例,请完成以下步骤:
-
使用 SSH 连接到 EC2 macOS 实例。
Linux:
要使用 SSH 以 ec2-user 身份连接到您的 EC2 macOS 实例,请运行以下命令:
% ssh -i keypair_file ec2-user@Instance-Public-IP
**注意:**请将 keypair_file 替换为您的密钥对,将 Instance-Public-IP 替换为您的实例的公有 IP 地址。
Windows:
Windows 10 及更高版本默认安装了 OpenSSH 客户端。要激活 OpenSSH 客户端,请选择 Settings, Apps, Apps & features(设置、应用程序、应用程序和功能),然后选择 Manage optional features(管理可选功能)。选择 Add a feature(添加功能),然后选择 OpenSSH Client(OpenSSH 客户端)。如果您使用的是较早版本的 Windows,则请使用 Git Bash 运行前面的 Linux 命令。
**注意:**当实例位于公有子网中时,您可以通过公有 IP 地址或弹性 IP 地址来访问该实例。使用堡垒机或跳转服务器连接到该实例。或者,使用 AWS VPN 或 AWS Direct Connect 通过私有 IP 地址与您的实例建立连接。出于安全原因,最佳做法是使用 SSH 将流量通过隧道传输到 macOS 屏幕共享服务。另外,最好也不要在安全组中打开 VNC 端口。
-
要从 macOS 实例安装和启动 macOS 屏幕共享 SSH,请运行以下命令:
sudo defaults write /var/db/launchd.db/com.apple.launchd/overrides.plist com.apple.screensharing -dict Disabled -bool false
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist
-
要为 ec2-user 设置密码,请运行以下命令:
sudo /usr/bin/dscl . -passwd /Users/ec2-user
-
要创建到 VNC 端口的 SSH 隧道,请运行以下命令:
ssh -i keypair_file -L 5900:localhost:5900 ec2-user@192.0.2.0
**注意:**请将 keypair_file 替换为您的 SSH 密钥路径,将 192.0.2.0 替换为您的实例的 IP 地址或 DNS 名称。
-
使用 VNC 客户端连接到 localhost:5900。
macOS:
macOS 内置有 VNC 客户端。要访问 VNC Viewer,请打开 Finder,选择 Go(开始),然后选择 Connect to Server(连接到服务器)。或者,使用键盘快捷键 CMD + K,然后在 Server Address(服务器地址)中输入 vnc://localhost:5900。
Windows:
您可以使用第三方 VNC 客户端,例如 RealVNC Viewer。如果您使用 RealVNC Viewer 客户端,请从 File(文件)下拉列表中选择 New Connection(新连接)。然后,对于 VNC Server: localhost:5900 Encryption: Let VNC Server Choose(VNC Server: localhost:5900 加密:让 VNC 服务器选择),选择 OK(确定)。对于其他客户端(例如 Windows 上的 TightVNC),此解决方案不适用。
**注意:**当连接到 RealVNC Viewer 时,您可能会遇到身份验证错误。要解决此问题,请将 Encryption(加密)设置从 Prefer On(首选开启)更改为 Prefer Off(首选关闭),或从 Prefer Off(首选关闭)更改为 Prefer On(首选开启)。
Linux:
您可以使用第三方 VNC 客户端,例如 Remmina。要下载该工具,请参阅 Remmina 网站上的如何安装 Remmina。
-
在 macOS GUI 启动后,请使用新密码以 ec2-user 身份连接到 macOS 实例的远程会话。
相关信息
如何在运行 Amazon Linux 2 的 Amazon EC2 实例上安装 GUI?
启动并连接到 Amazon EC2 Mac 实例
GitHub 网站上的 Amazon EC2 mac 入门