连接到您的实例的常规先决条件 - Amazon Elastic Compute Cloud

连接到您的实例的常规先决条件

在连接到您的 Linux 实例之前,请确认以下常规先决条件:

获取有关您的实例的信息

  • 获得实例的 ID.

    您可以通过使用 Amazon EC2 控制台获得您的实例的 ID(位于 Instance ID (实例 ID) 列中)。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。

  • 获得实例的公有 DNS 名称。

    可使用 Amazon EC2 控制台获取实例的公有 DNS。选中 Public DNS (IPv4) (公有 DNS (IPv4)) 列。如果此列已隐藏,请选择 Show/Hide (显示/隐藏) 图标,然后选择 Public DNS (IPv4) (公有 DNS (IPv4))。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。

  • (仅限 IPv6)获取实例的 IPv6 地址。

    如果您已将 IPv6 地址分配给您的实例,则可选择使用实例的 IPv6 地址而非公共 IPv4 地址或公共 IPv4 DNS 主机名来连接实例。您的本地计算机必须拥有 IPv6 地址,且必须配置为使用 IPv6。可以使用 Amazon EC2 控制台获取实例的 IPv6 地址。选中 IPv6 IPs (IPv6 IP) 字段。如果您愿意,您可以使用 describe-instances (AWS CLI) 或 Get-EC2Instance (适用于 Windows PowerShell 的 AWS 工具) 命令。有关 IPv6 的更多信息,请参阅IPv6 地址

  • 获取实例的用户名。

    您可以使用用户账户的用户名或用于启动实例的 AMI 的默认用户名连接到您的实例。

    • 获取用户账户的用户名。

      有关如何创建用户账户的更多信息,请参阅在 Amazon Linux 实例上管理用户账户

    • 获取用于启动实例的 AMI 的默认用户名称:

      • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user

      • 对于 CentOS AMI,用户名称是 centos

      • 对于 Debian AMI,用户名称是 admin

      • 对于 Fedora AMI,用户名为 ec2-userfedora

      • 对于 RHEL AMI,用户名称是 ec2-userroot

      • 对于 SUSE AMI,用户名称是 ec2-userroot

      • 对于 Ubuntu AMI,用户名称是 ubuntu

      • 另外,如果 ec2-userroot 无法使用,请与 AMI 供应商核实。

启用您的实例的入站流量

  • 允许从您的 IP 地址到您的实例的入站 SSH 流量

    确保与您的实例关联的安全组允许来自您的 IP 地址的传入 SSH 流量。默认情况下,VPC 的默认安全组不允许传入 SSH 流量。默认情况下,启动实例向导创建的安全组支持 SSH 流量。有关更多信息,请参阅 为您的 Linux 实例授权入站流量

查找私有密钥

  • 查找私有密钥

    获取您在启动实例时指定的密钥对的 .pem 文件在您电脑上位置的完全限定路径。有关如何创建密钥对的更多信息,请参阅使用 Amazon EC2 创建密钥对

  • 设置您的私有密钥的权限

    如果您将在 macOS 或 Linux 计算机上使用 SSH 客户端连接到您的 Linux 实例,请使用以下命令设置您私有密钥文件的权限,以确保只有您可以读取它。

    chmod 400 my-key-pair.pem

    如果不设置这些权限,则无法使用此密钥对连接到实例。有关更多信息,请参阅 错误:未保护的私有密钥文件

(可选)获取实例指纹

若要防范中间人攻击,您在连接您的实例时可以验证 RSA 密钥指纹。如果您从第三方的公用 AMI 启动了实例,则验证指纹将很有用。

首先获取实例指纹。然后,当您连接实例时,将会提示您验证指纹。您可以将您已获取的指纹与显示的指纹进行比较来实施验证。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果二者匹配,则您可以放心地连接到您的实例。

获取实例指纹的先决条件:

  • 要获取实例指纹,您必须使用 AWS CLI。有关安装 AWS CLI 的信息,请参阅 AWS Command Line Interface 用户指南 中的安装 AWS Command Line Interface

  • 实例不能处于 pending 状态。只有在第一次引导实例完成后,才能使用指纹。

获取实例指纹

  1. 在本地计算机上(而不是在实例上),按以下方式使用 get-console-output (AWS CLI) 命令以获取指纹:

    aws ec2 get-console-output --instance-id instance_id --output text
  2. 以下是您应该在输出中查找的内容的示例。确切的输出可能因操作系统、AMI 版本以及是否让 AWS 创建密钥而异。

    ec2: ############################################################# ec2: -----BEGIN SSH HOST KEY FINGERPRINTS----- ec2: 1024 SHA256:7HItIgTONZ/b0CH9c5Dq1ijgqQ6kFn86uQhQ5E/F9pU root@ip-10-0-2-182 (DSA) ec2: 256 SHA256:l4UB/neBad9tvkgJf1QZWxheQmR59WgrgzEimCG6kZY root@ip-10-0-2-182 (ECDSA) ec2: 256 SHA256:kpEa+rw/Uq3zxaYZN8KT501iBtJOIdHG52dFi66EEfQ no comment (ED25519) ec2: 2048 SHA256:L8l6pepcA7iqW/jBecQjVZClUrKY+o2cHLI0iHerbVc root@ip-10-0-2-182 (RSA) ec2: -----END SSH HOST KEY FINGERPRINTS----- ec2: #############################################################