使用 PuTTY 从 Windows 连接到 Linux 实例

启动您的实例之后,您可以连接到该实例,然后像使用您面前的计算机一样来使用它。

先决条件

使用 PuTTY 连接到您的 Linux 实例之前,请先完成以下先决条件:

  • 安装 PuTTY

    从 PuTTY 下载页面下载并安装 PuTTY。如果您安装的是旧版本的 PuTTY,建议您下载最新版本。确保安装整个套件。

  • 获得实例的 ID

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

  • 获得实例的公有 DNS 名称

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

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

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

  • 查找私有密钥

    您需要使用您在启动实例时指定的密钥对的 .pem 文件的完全限定路径。

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

    确保与您的实例关联的安全组允许来自您的 IP 地址的传入 SSH 流量。有关更多信息,请参阅授权网络访问您的实例。

    Important

    默认情况下,您的默认安全组不允许传入 SSH 流量。

     

使用 PuTTYgen 转换您的私有密钥

PuTTY 本身不支持 Amazon EC2 生成的私有密钥格式 (.pem)。PuTTY 有一个名为 PuTTYgen 的工具,可将密钥转换成所需的 PuTTY 格式 (.ppk)。您必须将私有密钥转换为此格式 (.ppk),然后才能尝试使用 PuTTY 连接到您的实例。

转换您的私有密钥

  1. 启动 PuTTYgen (例如,在开始菜单中,选择 All Programs > PuTTY > PuTTYgen)。
  2. Type of key to generate (要生成的密钥类型) 下,选择 SSH-2 RSA
    PuTTYgen 中的 SSH-2 RSA 密钥
  3. 选择 Load。在默认情况下,PuTTYgen 仅显示扩展名为 .ppk 的文件。要找到您的 .pem 文件,请选择显示所有类型的文件的选项。
    选择所有文件类型
  4. 选择您在启动实例时指定的密钥对的 .pem 文件,然后选择 打开。选择 OK 关闭确认对话框。
  5. 选择 Save private key,以 PuTTY 可以使用的格式保存密钥。PuTTYgen 显示一条关于在没有口令的情况下保存密钥的警告。选择

    Note

    私有密钥的口令是一层额外保护,因此,即使您的私有密钥被泄露,在没有口令的情况下,该密钥仍不可用。使用口令的缺点是让自动化变得更难,因为登录到实例或复制文件到实例需要进行人为干预。

  6. 为该密钥指定与密钥对相同的名称(如,my-key-pair)。PuTTY 自动添加 .ppk 文件扩展名。

您的私有密钥格式现在是正确的 PuTTY 使用格式了。您现在可以使用 PuTTY 的 SSH 客户端连接到实例。

启动 PuTTY 会话

通过以下过程使用 PuTTY 连接到您的 Linux 实例。您需要使用为私有密钥创建的 .ppk 文件。如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。

启动 PuTTY 会话

  1. (可选)您可以在本地系统(而不是实例)上使用以下命令之一验证实例上的 RSA 密钥指纹。如果您从第三方的公用 AMI 启动了实例,则可能需要这样做。找到 SSH HOST KEY FINGERPRINTS 部分,记下 RSA 指纹(例如 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6f)并将它与实例的指纹进行比较。
    • get-console-output (AWS CLI)
      aws ec2 get-console-output --instance-id instance_id

    Note

    SSH HOST KEY FINGERPRINTS 部分仅在实例首次启动之后可用。

  2. 启动 PuTTY (在开始菜单中,选择 All Programs > PuTTY > PuTTY)。
  3. 在“Category (类别)”窗格中,选择 Session (会话) 并填写以下字段:
    1. Host Name (主机名) 框中,输入 user_name@public_dns_name。确保为您的 AMI 指定相应的用户名。例如:
      • 对于 Amazon Linux AMI,用户名为 ec2-user

      • 对于 RHEL5 AMI,用户名称为 rootec2-user

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

      • 对于 Fedora AMI,用户名称为 fedoraec2-user

      • 对于 SUSE Linux,用户名称是 rootec2-user

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

    2. (仅限 IPv6) 要使用实例的 IPv6 地址连接,请输入 user_name@ipv6_address。确保为您的 AMI 指定相应的用户名。例如:
      • 对于 Amazon Linux AMI,用户名为 ec2-user

      • 对于 RHEL5 AMI,用户名称为 rootec2-user

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

      • 对于 Fedora AMI,用户名称为 fedoraec2-user

      • 对于 SUSE Linux,用户名称是 rootec2-user

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

    3. Connection type (连接类型) 下,选择 SSH
    4. 确保 Port (端口) 为 22。
    PuTTY 配置 - 会话
  4. Category (类别) 窗格中,展开 Connection (连接),再展开 SSH,然后选择 Auth (身份验证)。完成以下操作:
    1. 选择 Browse
    2. 选择您为密钥对生成的 .ppk 文件,然后选择打开
    3. (可选)如果打算稍后重新启动此会话,则可以保存此会话信息以便日后使用。在类别树中选择会话,在 Saved Sessions 中输入会话名称,然后选择保存
    4. 选择打开以便开始 PuTTY 会话。
    PuTTY 配置 - 身份验证
  5. 如果这是您第一次连接到此实例,PuTTY 会显示安全警告对话框,询问您是否信任您要连接到的主机。
  6. (可选)验证安全警报中的指纹是否与在步骤 1 中获取的指纹匹配。如果这些指纹不匹配,则表示有人可能在试图实施“中间人”攻击。如果匹配,请继续到下一步。
  7. 选择。此时会打开一个窗口并且您连接到了您的实例。

    Note

    如果您在将私有密钥转换成 PuTTY 格式时指定了口令,当您登录到实例时,您必须提供该口令。

如果您在尝试连接到您的实例时收到错误消息,请参阅排查实例的连接问题。