【问题标题】:Can we SSH to Windows EC2 instance in AWS?我们可以通过 SSH 连接到 AWS 中的 Windows EC2 实例吗?
【发布时间】:2021-06-05 05:15:46
【问题描述】:

我是 AWS 的新手,我创建了一个新的 Windows EC2 实例。我看到了通过 SSH 连接到不同实例的方法,例如使用 PuTTY 的 Amazon Linux、Ubuntu。但不适用于 Windows 实例。我们不能使用 PuTTY 连接到 Windows 实例吗?任何帮助,将不胜感激。谢谢。

【问题讨论】:

  • 是的,如果您已在 Windows 实例上安装并正确配置了 SSH 服务器,添加了相关的 SSH 公钥,并配置了相关的防火墙(AWS 安全组加上 Windows 防火墙)正确。但是,通常情况下,您会使用远程桌面 (RDP) 连接到 Windows EC2 实例。

标签: amazon-web-services amazon-ec2 ssh


【解决方案1】:

您可以在 AWS 上将 SSHLinuxMac 实例。你可以使用Remote Desktop (RDP) to access Windows Instances

假设您想通过 SSH 连接到 Windows 实例,那么您必须安装 OpenSSH。这仍然需要访问 Windows 实例。

AWS 提供了几种访问 Windows 实例的方法,其中之一是 AWS Systems Manager Session Manager (SSM)。您需要通过 SSM 启用 RDP。您可以通过此workshop 了解如何执行此操作。或者,配置 SSM 以针对实例运行 powershell 命令注意,实例必须具有对 SSM 具有 IAM 访问权限的角色。如果实例位于私有 VPC 中,则需要通过 endpoints 访问 SSM。

如果您的实例位于公共子网中,并且具有公共 IP 地址,则您可以使用 RDP 轻松连接到您的 Windows 实例。 注意就像您运行 Linux 的 EC2 实例一样,安全组必须允许访问。在这种情况下,它必须是 RDP(3389)而不是 SSH(端口 22)。你可以阅读更多关于the prerequisites here的信息。

当您创建 Windows EC2 实例时,系统会要求您创建一个密钥。假设您使用的是 AWS AMI,您可以使用此密钥获取 Windows 密码。

访问您的密码

按照以下步骤操作(来自文档here):

  • 打开 Amazon EC2 控制台,然后选择实例。

  • 选中实例的复选框,然后展开操作下拉列表。如果您使用的是旧控制台,请选择获取 Windows 密码。如果您使用的是新控制台,请选择安全性,然后选择获取 Windows 密码。 注意:在您首次启动新实例后,此选项可能需要几分钟才能可用。

  • 选择浏览,选择您的密钥对文件,然后选择打开。

    -或-

  • 将密钥对的内容粘贴到文本框中。 选择解密密码。

连接到实例

在密码屏幕上,选择下载远程桌面文件。您的浏览器会提示您打开或保存 RDP 快捷方式文件。选择保存文件的选项。下载完文件后,选择取消返回实例页面。

  • 导航到您的下载目录并打开 RDP 快捷方式文件。

  • 您可能会收到远程连接的发布者未知的警告。选择 Connect 以继续连接到您的实例。

  • 默认选择管理员帐户。复制并粘贴您之前保存的密码。

  • 您还可以使用EC2 Serial Console 访问运行 Windows 的 EC2 实例,这对于调试启动问题非常有用。

  • 由于自签名证书的性质,您可能会收到无法验证安全证书的警告。使用以下步骤来验证远程计算机的身份,或者如果您信任证书,则只需选择是 (Windows) 或继续 (Mac OS X)。

有关如何连接的更多详细信息,请访问此site

【讨论】:

  • 另外,连接到实例后,设置 SSH 是 possible(至少在 Windows Server 2019 基础中),尽管它仍然会询问您的用户密码
【解决方案2】:

我们可以通过 SSH 连接到 AWS 中的 Windows EC2 实例吗? - 没有。

您可以使用 RDP(远程桌面)连接 Windows EC2。您可以通过选择实例 -> 连接 -> RDP

从 AWS 控制台下载 .rdp 文件

SSH 连接适用于基于 Linux 的 EC2 机器。

【讨论】:

    【解决方案3】:

    PuTTy 不是通常用于 Windows 机器的工具。虽然我确信可以为 Windows 机器设置 SSH 访问,但以下方法更典型且更易于设置。

    如果您有一个与您的 EC2 实例关联的密钥对,则可以使用 AWS 控制台向您显示使用 Windows 远程桌面访问您的计算机所需的用户名和密码,方法是向其提供您的 pem 文件。这还需要您在安全组中启用入站 RDP 访问(与 SSH 不同的端口)。

    如果您只需要 PowerShell 访问权限,并且您正在使用安装了 SSM 代理的实例(例如 Amazon Linux AMI)以及具有所需 SSM 权限的角色,则可以使用 Session Manager 进行连接。这不需要密钥对或直接通过网络访问您的机器,因此这是一种更安全的方法,但需要更多设置。

    这两种技术都在下面的参考资料中有更详细的描述。

    参考资料:

    【讨论】:

      【解决方案4】:

      您可以通过AWS Session Manager 连接到您的 Windows EC2。它允许您从基于浏览器的 shell 管理您的实例。与 SSH 一样,您可以从 SSM 提供的 shell 管理您的 EC2。您可以从控制台执行 power shell 命令。

      要使用 SSM,首先您需要在实例中安装 ssm 代理,并在 IAM 角色中授予 EC2 所需的 SSM 策略。

      我相信 SSM 代理默认安装在 Windows EC2 实例中。 AWS 还为 EC2 提供了一个名为 AmazonSSMRoleForInstancesQuickSetup 的角色。您可以使用相同的策略或利用此角色中的策略。

      连接:选择实例并在连接选项中选择会话管理器

      【讨论】:

        最近更新 更多