为 WorkSpaces 个人版的 Linux WorkSpaces 启用 SSH 连接 - Amazon WorkSpaces

为 WorkSpaces 个人版的 Linux WorkSpaces 启用 SSH 连接

如果您或您的用户希望使用命令行连接到 Linux WorkSpaces,您可以启用 SSH 连接。您可以启用与目录中的所有 WorkSpace 或目录中的单个 WorkSpace 的 SSH 连接。

要启用 SSH 连接,您可以创建新的安全组或更新现有安全组,然后添加规则以允许入站流量用于此目的。安全组用作相关实例的防火墙,可在实例级别控制入站和出站的数据流。在创建或更新安全组后,您的用户和其他人可以使用 PuTTY 或其他终端从其设备连接到您的 Linux WorkSpaces。有关更多信息,请参阅 WorkSpaces 个人版的安全组

有关视频教程,请参阅 AWS 知识中心中的如何使用 SSH 连接到我的 Linux Amazon WorkSpaces?。本教程仅适用于 Amazon Linux 2 WorkSpaces。

将 SSH 连接到 Linux WorkSpaces 的先决条件

  • 启用到 WorkSpace 的入站 SSH 流量 - 要添加允许入站 SSH 流量进入一个或多个 Linux WorkSpaces 的规则,请确保您具有需要将 SSH 连接到 WorkSpaces 的设备的公有或私有 IP 地址。例如,您可以指定虚拟私有云(VPC) 之外的设备的公有 IP 地址或您的 WorkSpace 所在的 VPC 中的另一个 EC2 实例的私有 IP 地址。

    如果您计划从本地设备连接到 WorkSpace,则可以在互联网浏览器中使用搜索短语“我的 IP 地址”,或使用以下服务:检查 IP

  • 连接到 WorkSpace - 需要以下信息才能发起从设备到 Linux WorkSpace 的 SSH 连接。

    • 您连接到的 Active Directory 域的 NetBIOS 名称。

    • 您的 WorkSpace 用户名。

    • 要连接到的 WorkSpace 的公有或私有 IP 地址。

      私有:如果您的 VPC 已连接到公司网络并且您有权访问该网络,则可以指定 WorkSpace 的私有 IP 地址。

      公有:如果您的 WorkSpace 具有公有 IP 地址,则可以使用 WorkSpace 控制台来查找该公有 IP 地址,如以下过程中所述。

查找要连接到的 Linux WorkSpace 的 IP 地址和您的用户名
  1. 打开 WorkSpaces 控制台,网址为:https://console.aws.amazon.com/workspaces/

  2. 在导航窗格中,选择 WorkSpaces

  3. 在 WorkSpaces 的列表中,选择要为其启用 SSH 连接的 WorkSpace。

  4. Running mode (运行模式) 列中,确认 WorkSpace 状态为 Available (可用)

  5. 单击 WorkSpace 名称左侧的箭头以显示内联摘要,并记下以下信息:

    • WorkSpace IP。这是 WorkSpace 的私有 IP 地址。

      需要此私有 IP 地址才能获取与 WorkSpace 关联的弹性网络接口。需要网络接口才能检索与 WorkSpace 关联的安全组或公有 IP 地址等信息。

    • WorkSpace Username (用户名)。这是您指定的要连接到 WorkSpace 的用户名。

  6. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  7. 在导航窗格中,选择网络接口

  8. 在搜索框中,键入在步骤 5 中记下的 WorkSpace IP

  9. 选择与 WorkSpace IP 关联的网络接口。

  10. 如果您的 WorkSpace 具有公有 IP 地址,则它会显示在 IPv4 Public IP (IPv4 公有 IP) 列中。记下该地址(如果适用)。

查找您连接到的 Active Directory 域的 NetBIOS 名称
  1. 打开 AWS Directory Service 控制台,网址为:https://console.aws.amazon.com/directoryservicev2/

  2. 在目录列表中,单击 WorkSpace 的目录的 Directory ID (目录 ID) 链接。

  3. Directory details (目录详细信息) 部分,记下 Directory NetBIOS name (目录 NetBIOS 名称)

将 SSH 连接到目录中的所有 Linux WorkSpaces

要将 SSH 连接到目录中的所有 Linux WorkSpaces,请执行以下操作。

使用相关规则创建安全组,以允许入站 SSH 流量进入目录中的所有 Linux WorkSpaces
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择安全组

  3. 选择创建安全组

  4. 键入安全组的名称(可选)和描述。

  5. 对于 VPC,选择包含要为其启用 SSH 连接的 WorkSpaces 的 VPC。

  6. Inbound (入站) 选项卡上,选择 Add Rule (添加规则),然后执行以下操作:

    • 对于 Type,选择 SSH

    • 对于 Protocol (协议),在您选择 SSH 时会自动指定 TCP。

    • 对于 Port Range (端口范围),在您选择 SSH 时会自动指定 22。

    • 对于,为用户用于连接其 WorkSpaces 的计算机指定公有 IP 地址的 CIDR 范围。例如,公司网络或家庭网络。

    • 对于 Description (描述)(可选),键入规则的描述。

  7. 选择创建

  8. 将此安全组附加到您的 WorkSpaces。有关将此安全组添加到 WorkSpaces 的更多信息,请参阅 WorkSpaces 个人版的安全组。如果您想自动将其他安全组附加到 WorkSpaces,请参阅此博客文章

WorkSpaces 中基于密码的身份验证

在新创建的 Linux WorkSpaces 中启用密码身份验证
  1. 启动 WorkSpaces 客户端并登录到您的 WorkSpace。

  2. 打开终端窗口。

  3. 在终端窗口中,运行以下命令,以在 cloud-init 中启用 SSH 密码身份验证。

    sudo bash -c 'touch /etc/cloud/cloud.cfg.d/15_sshpwauth.cfg && echo "ssh_pwauth: true" > /etc/cloud/cloud.cfg.d/15_sshpwauth.cfg && sudo rm /var/lib/cloud/instance/sem/config_set_passwords && sudo cloud-init single --name set-passwords'

    该脚本将执行以下操作:

    • 在 cloud-init 目录 /etc/cloud/cloud.cfg.d/ 中创建配置文件。

    • 修改配置文件,以告知 cloud-init 启用 SSH 密码身份验证。

    • 重置 set-passwords cloud-init 模块,使其可以再次运行。

    • 单独运行 set-passwords cloud-init 模块。这会将启用 SSH 密码身份验证的文件写入 SSH 配置目录 /etc/ssh/sshd_config.d/,然后重新启动 SSHD,以便立即进行设置。

这将在您的 WorkSpace 上启用 SSH 密码身份验证,并将通过自定义映像保留该设置。如果您仅在 SSHD 配置文件中启用 SSH 密码身份验证,而不配置 cloud-init,则在某些 Linux WorkSpaces 上,该设置将无法通过映像保留。有关更多信息,请参阅 cloud-init 模块文档中的设置密码

在现有 Linux WorkSpaces 中禁用密码身份验证
  1. 启动 WorkSpaces 客户端并登录到您的 WorkSpace。

  2. 打开终端窗口。

  3. 在终端窗口中,运行以下命令,以在 cloud-init 中禁用 SSH 密码身份验证。

    sudo bash -c 'touch /etc/cloud/cloud.cfg.d/15_sshpwauth.cfg && echo "ssh_pwauth: false" > /etc/cloud/cloud.cfg.d/15_sshpwauth.cfg && sudo rm /var/lib/cloud/instance/sem/config_set_passwords && sudo cloud-init single —name set-passwords'

    该脚本将执行以下操作:

    • 在 cloud-init 目录 /etc/cloud/cloud.cfg.d/ 中创建配置文件。

    • 修改配置文件,以告知 cloud-init 禁用 SSH 密码身份验证。

    • 重置 set-passwords cloud-init 模块,使其可以再次运行。

    • 单独运行 set-passwords cloud-init 模块。这会将启用 SSH 密码身份验证的文件写入 SSH 配置目录 /etc/ssh/sshd_config.d/,然后重新启动 SSHD,以便立即进行设置。

这会立即在 WorkSpace 中禁用 SSH,并将通过自定义映像保留该设置。

将 SSH 连接到特定 Linux WorkSpace

要将 SSH 连接到特定 Linux WorkSpace,请执行以下操作。

将规则添加到现有安全组以允许入站 SSH 流量进入特定 Linux WorkSpace
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,在 Network & Security (网络与安全性) 下,选择 Network Interfaces (网络接口)

  3. 在搜索栏中,键入要为其启用 SSH 连接的 WorkSpace 的私有 IP 地址。

  4. Security groups (安全组) 列中,单击安全组的链接。

  5. Inbound (入站) 选项卡上,选择 Edit (编辑)

  6. 选择 Add Rule (添加规则),然后执行以下操作:

    • 对于 Type,选择 SSH

    • 对于 Protocol (协议),在您选择 SSH 时会自动指定 TCP。

    • 对于 Port Range (端口范围),在您选择 SSH 时会自动指定 22。

    • 对于 Source (源),选择 My IP (我的 IP)Custom (自定义),然后用 CIDR 表示法指定单个 IP 地址或 IP 地址范围。例如,如果您的 IPv4 地址为 203.0.113.25,请指定 203.0.113.25/32,以使用 CIDR 表示法列出此单个 IPv4 地址。如果您的公司要分配同一范围内的地址,请指定整个范围,例如 203.0.113.0/24

    • 对于 Description (描述)(可选),键入规则的描述。

  7. 选择保存

使用 Linux 或 PuTTY 连接到 Linux WorkSpace

在创建或更新安全组并添加所需规则后,您的用户及其他人可以使用 Linux 或 PuTTY 从其设备连接到 WorkSpaces。

注意

在完成以下任一过程之前,请确保您具有:

  • 您连接到的 Active Directory 域的 NetBIOS 名称。

  • 用于连接到 WorkSpace 的用户名。

  • 要连接到的 WorkSpace 的公有或私有 IP 地址。

有关如何获取此信息的说明,请参阅本主题前面的“将 SSH 连接到 Linux WorkSpaces 的先决条件”。

使用 Linux 连接到 Linux WorkSpace
  1. 以管理员身份打开命令提示符并输入以下命令。对于 NetBIOS name (NetBIOS 名称)Username (用户名)WorkSpace IP,输入适当的值。

    ssh "NetBIOS_NAME\Username"@WorkSpaceIP

    以下是 SSH 命令的示例,其中:

    • NetBIOS_NAME 为 anycompany

    • Username 为 janedoe

    • WorkSpace IP 为 203.0.113.25

    ssh "anycompany\janedoe"@203.0.113.25
  2. 系统提示时,输入在使用 WorkSpaces 客户端进行身份验证时使用的同一个密码(您的 Active Directory 密码)。

使用 PuTTY 连接到 Linux WorkSpace
  1. 打开 PuTTY。

  2. PuTTY Configuration (PuTTY 配置) 对话框中,执行以下操作:

    • 对于 Host Name (or IP address) (主机名(或 IP 地址)),输入以下命令。将这些值分别替换为要连接到的 Active Directory 域的 NetBIOS 名称、用于连接到 WorkSpace 的用户名和要连接到的 WorkSpace 的 IP 地址。

      NetBIOS_NAME\Username@WorkSpaceIP
    • 对于端口,输入 22

    • 对于 Connection type (连接类型),选择 SSH

    有关 SSH 命令的示例,请参阅上一过程中的步骤 1。

  3. 选择打开

  4. 系统提示时,输入在使用 WorkSpaces 客户端进行身份验证时使用的同一个密码(您的 Active Directory 密码)。