Amazon Elastic Compute Cloud
用户指南(适用于 Linux 实例)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 EC2 Instance Connect 进行连接

以下说明介绍如何使用 EC2 Instance Connect 连接到 Linux 实例。

限制

  • 支持以下 Linux 发行版:

    • Amazon Linux 2(任何版本)

    • Ubuntu 16.04 或更高版本

  • 要使用 Amazon EC2 控制台进行连接,实例必须具有公有 IP 地址(IPv4 或 IPv6)。您可以使用 EC2 Instance Connect CLI 通过实例的私有 IP 地址进行连接。

  • 目前不支持 Safari 浏览器。

先决条件

  • 在实例上安装 Instance Connect。

    有关更多信息,请参阅 设置 EC2 Instance Connect

  • (可选)在本地计算机上安装 SSH 客户端。

    如果用户仅使用控制台或 EC2 Instance Connect CLI 连接到实例,则无需安装 SSH 客户端。您的本地计算机很可能已默认安装 SSH 客户端。您可以通过在命令行键入 ssh 来检查 SSH 客户端。如果您的本地计算机无法识别该命令,您可安装 SSH 客户端。有关在 Linux 或 macOS X 上安装 SSH 客户端的信息,请参阅 http://www.openssh.com。有关在 Windows 10 上安装 SSH 客户端的信息,请参阅 Windows 中的 OpenSSH

  • (可选)在本地计算机上安装 EC2 Instance Connect CLI。

    如果用户仅使用控制台或 SSH 客户端连接到实例,则无需安装 EC2 Instance Connect CLI。有关更多信息,请参阅步骤 3:(可选)安装 EC2 Instance Connect CLI

使用基于浏览器的客户端进行连接

您可以通过从 Amazon EC2 控制台中选择实例,然后选择使用 EC2 Instance Connect 进行连接,以使用基于浏览器的客户端连接到实例。Instance Connect 处理权限并提供成功的连接。

从 Amazon EC2 控制台使用基于浏览器的客户端连接到您的实例

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中,选择 Instances (实例)

  3. 选择实例,然后选择连接

  4. 选择 EC2 Instance Connect (基于浏览器的 SSH 连接),然后选择连接

将打开一个窗口,并且您连接到实例。

使用 EC2 Instance Connect CLI 进行连接

您可以使用 EC2 Instance Connect CLI 并仅提供实例 ID 以连接到实例,同时 Instance Connect CLI 在一次调用中执行以下三个操作:它生成一次性使用的 SSH 公有密钥,将密钥推送到实例以在其中保留 60 秒,并将用户连接到实例。您可以在 Instance Connect CLI 中使用基本 SSH/SFTP 命令。

Amazon Linux 2Ubuntu
Amazon Linux 2

使用 EC2 Instance Connect CLI 连接到实例

mssh 命令与实例 ID 一起使用,如下所示。您无需指定 AMI 的用户名。

$ mssh i-001234a4bf70dec41EXAMPLE
Ubuntu

使用 EC2 Instance Connect CLI 连接到实例

mssh 命令与实例 ID 以及 Ubuntu AMI 的默认用户名一起使用,如下所示。您必须指定 AMI 的用户名,否则会出现以下错误:身份验证失败

$ mssh ubuntu@i-001234a4bf70dec41EXAMPLE

使用您自己的密钥和 SSH 客户端进行连接

您可以使用自己的 SSH 密钥,并在使用 EC2 Instance Connect API 时从您选择的 SSH 客户端连接到您的实例。这使您能够从将公有密钥推送到实例的 Instance Connect 功能中受益。

要求

支持的 RSA 密钥类型是 OpenSSH 和 SSH2。支持的长度为 2048 和 4096。有关更多信息,请参阅 将您自己的公有密钥导入 Amazon EC2

使用您自己的密钥和任何 SSH 客户端连接到实例

  1. (可选)生成新的 SSH 私有密钥和公有密钥。

    您可以使用以下命令生成新的 SSH 私有密钥和公有密钥(my_rsa_keymy_rsa_key.pub):

    $ ssh-keygen -t rsa -f my_rsa_key
  2. 将 SSH 公有密钥推送到实例。

    可以使用 send-ssh-public-key 命令将 SSH 公有密钥推送到实例。如果使用 Amazon Linux 2 启动实例,则 AMI 的默认用户名是 ec2-user。如果使用 Ubuntu 启动实例,则 AMI 的默认用户名是 ubuntu

    在以下示例中,将针对操作系统用户 ec2-user 将公有密钥推送到 us-west-2b 中具有 id i-001234a4bf70dec41EXAMPLE 的实例:

    $ aws ec2-instance-connect send-ssh-public-key --region us-west-2 --instance-id i-001234a4bf70dec41EXAMPLE --availability-zone us-west-2b --instance-os-user ec2-user --ssh-public-key file://my_rsa_key.pub
  3. 使用私有密钥连接到实例。

    从实例元数据中删除公有密钥之前,可以使用 ssh 命令通过私有密钥连接到实例(在 60 秒后删除)。指定与公有密钥对应的私有密钥、用于启动实例的 AMI 的默认用户名以及实例的公有 DNS。

    $ ssh -i my_rsa_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com