如何使用 Systems Manager 会话管理器端口转发(而不使用堡垒机)通过 RDP 连接到我的 EC2 实例?

2 分钟阅读
0

我想将我的 Amazon Elastic Compute Cloud(Amazon EC2)实例与远程桌面协议(RDP)连接。我想使用 AWS Systems Manager 会话管理器端口转发(而不使用堡垒机)进行此连接。

解决方法

端口转发是 Systems Manager 会话管理器的一项功能。利用此功能,您能够在本地系统和部署在私有子网中的实例之间创建隧道。您无需打开入站端口或配置堡垒机。当在安全组上阻止入站访问时,您可以使用此功能通过 RDP 连接到您的 Amazon EC2 Windows 实例。

**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新的 AWS CLI 版本

检查先决条件

先决条件:

建立连接

1.    建立从本地计算机到 EC2 实例的端口转发会话:

在本地计算机上运行下列命令:

aws ssm start-session --target <instanceid> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=55678,portNumber=3389"

这将建立一条从本地计算机的端口 55678 到远程 EC2 实例中的端口 3389(RDP 端口)的隧道。

此命令还假设 EC2 实例操作系统配置为在默认端口 3389 上接受 RDP 连接。请将 localPortNumber 和 portNumber 的值替换为您的值。

如果您的会话连接成功,则您会收到下列消息:

Starting session with SessionId: xxxxx-01234567891011abc
Port 55678 opened for sessionId xxxxx-01234567891011abc
Waiting for connections...

2.    使用隧道通过 RDP 连接到远程 EC2 实例:

使用本地 RDP 客户端,连接到 localhost:55678。这会将流量转发到 EC2 实例上的远程端口 3389。

连接到 RDP 会话后,AWS CLI 指示已通过隧道建立连接,并显示以下消息:

Connection accepted for session [xxxxx-01234567891011abc]

3.    结束端口转发会话:

关闭 RDP 会话后,请在 AWS CLI 上按 Ctrl + C 结束端口转发会话。或者,您可以从 AWS Systems Manager 控制台结束会话

您会看到一条类似于以下内容的消息:

Terminate signal received, exiting.  
Exiting session with sessionId: xxxxx-01234567891011abc.

连接故障排除

如果您的会话无法连接,则可能是由于以下原因:

有关详细信息,请参阅会话管理器故障排除

AWS 官方
AWS 官方已更新 1 年前