使用 EC2 Instance Connect 进行连接 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 EC2 Instance Connect 进行连接

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

限制

  • 支持以下 Linux 发行版:

    • Amazon Linux 2(任何版本)

    • Ubuntu 16.04 或更高版本

  • 要使用基于浏览器的客户端进行连接,实例必须具有公有 IPv4 地址。

  • 如果实例没有公有 IP 地址,则只能使用 EC2 Instance Connect CLI 连接到实例,并且只能从同一 VPC 内的计算机连接。

  • EC2 Instance Connect 不支持使用 IPv6 地址进行连接。

先决条件

  • 在实例上安装 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

  5. 验证用户名并选择连接以打开终端窗口。

使用 EC2 Instance Connect CLI 进行连接

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

注意

使用 mssh 时不支持 -i。在使用 mssh 命令连接到实例时,无需指定任何类型的身份文件,因为 Instance Connect 会管理密钥对。

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。有关更多信息,请参阅 选项 2:将您自己的公有密钥导入到 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 进行身份验证:

    $ aws ec2-instance-connect send-ssh-public-key \ --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 名称。添加 IdentitiesOnly=yes 选项以确保仅使用 ssh config 中的文件和指定的密钥进行连接。

    $ ssh -o "IdentitiesOnly=yes" -i my_rsa_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com