您可以使用 SSH 或图形用户界面(GUI)连接到 Mac 实例。
多个用户可以同时访问操作系统。由于端口 5900 上有内置的屏幕共享服务,通常会出现 1:1 的 user:GUI 会话。在 macOS 中使用 SSH 支持多个会话,上限为 sshd_config
文件中规定的“最大会话数”限制。
使用 SSH 连接到您的实例。
默认情况下,Amazon EC2 Mac 实例不允许远程根 SSH。ec2-user 账户已配置为使用 SSH 远程登录。ec2-user 账户也具有 sudo 权限。连接到实例后,您可以添加其他用户。
要支持使用 SSH 连接到您的实例,请使用密钥对和允许 SSH 访问的安全组启动实例,并确保实例具有互联网连接。连接到实例时,您可以提供密钥对的 .pem
文件。
通过以下过程使用 SSH 客户端连接到您的 Mac 实例。如果您在尝试连接到实例时收到错误,请参阅 排查 Amazon EC2 Linux 实例的连接问题。
使用 SSH 连接到您的实例
-
通过在命令行输入 ssh,验证您的本地计算机是否安装了 SSH 客户端。如果您的计算机无法识别该命令,请为操作系统搜索 SSH 客户端并进行安装。
-
获得实例的公有 DNS 名称。使用 Amazon EC2 控制台,您可以在 Details (详细信息) 和 Networking (联网) 选项卡上找到公有 DNS 名称。通过使用 cribe-instances
命令 AWS CLI,您可以找到公有 DNS 名称。 -
找到您在启动实例时指定的密钥对的
.pem
文件。 -
使用以下 ssh 命令连接到您的实例,请指定实例和
.pem
文件的公有 DNS 名称。ssh -i
/path/key-pair-name
.pem ec2-user@instance-public-dns-name
密码验证已禁用,以防止强力 (brute-force) 密码攻击。在更改 SSH 配置之前,请打开 /usr/local/aws/ec2-macos-init/init.toml
并将 secureSSHDConfig
设置为 false
。
连接到您实例的图形用户界面(GUI)
按照以下程序,使用 VNC、Apple Remote Desktop(ARD)或 Apple Screen Sharing 应用程序(macOS 中附带)连接到您实例的 GUI。
注意
macOS 10.14 及更高版本仅允许控制是否通过系统首选项
使用 ARD 客户端或 VNC 客户端连接到实例
-
验证本地计算机是否安装了 ARD 客户端或支持 ARD 的 VNC 客户端。在 macOS 上,您可以利用内置的屏幕共享应用程序。否则,请搜索适用于您的操作系统的 ARD,然后进行安装。
-
从本地计算机上,使用 SSH 连接到实例。
-
使用 passwd 命令为 ec2-user 账户设置密码,如下所示。
[ec2-user ~]$
sudo passwd ec2-user -
使用以下命令安装并启动 macOS 屏幕共享。
[ec2-user ~]$
sudo launchctl enable system/com.apple.screensharing sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.screensharing.plist -
键入 exit,然后按下回车键,从而将实例断开连接。
-
在计算机上,使用以下 ssh 命令连接到您的实例。除了上一部分中显示的选项外,还可以使用 -L 选项启用端口转发并将本地端口 5900 上的所有流量转发到实例上的 ARD 服务器。
ssh -L 5900:localhost:5900 -i
/path/key-pair-name
.pem ec2-user@instance-public-dns-name
-
从本地计算机上,使用 ARD 客户端或支持 ARD 的 VNC 客户端连接到
localhost:5900
。例如,在 macOS 上使用屏幕共享应用程序,如下所示:-
打开查找器并选择前往。
-
选择连接到服务器。
-
在服务器地址字段中,输入
vnc://localhost:5900
。 -
根据提示登录,将
ec2-user
用作为 ec2-user 账户创建的用户名和密码。
-
在 Mac 实例上修改 macOS 屏幕分辨率
使用 ARD 或支持此 ARD 的 VNC 客户端连接到 EC2 Mac 实例后,您可以使用任何公开提供的 macOS 工具或实用程序(例如 displayplacer
使用 displayplacer 修改屏幕分辨率
-
安装 displayplacer。
[ec2-user ~]$
brew tap jakehilborn/jakehilborn && brew install displayplacer -
显示当前屏幕信息和可能的屏幕分辨率。
[ec2-user ~]$
displayplacer list -
应用所需的屏幕分辨率。
[ec2-user ~]$
displayplacer "id:<screenID> res:<width>x<height> origin:(0,0) degree:0"例如:
RES="2560x1600" displayplacer "id:69784AF1-CD7D-B79B-E5D4-60D937407F68 res:${RES} scaling:off origin:(0,0) degree:0"