连接 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例时,为什么我会收到 "imported-openssh-key" 或 "Putty Fatal Error" 错误?

上次更新日期:2020 年 10 月 6 日

连接 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例时,我收到 "imported-openssh-key" 或 "Putty Fatal Error" 错误。该如何处理这些错误?

简短描述

使用 SSH 连接 Linux 实例时,我收到类似于以下内容的错误:

“使用用户名 "root"。使用公钥 "imported-openssh-key" 进行身份验证,请以用户 "ec2-user" 而不是用户 "root" 的身份登录。”

-或者-

使用 PuTTY 客户端时,我收到类似于以下内容的错误:

“PuTTY 致命错误:连接已断开:没有受支持的身份验证方法可用(服务器发送:公钥)确定

以下情况可能会发生这些错误:

  • 在与 EC2 实例协商 SSH 会话时,您没有使用适用于 AMI 的适当用户名进行连接。
  • 在与 EC2 实例协商 SSH 会话时,您使用了错误的私钥。

解决方法

验证是否使用正确的用户名进行连接

在本地计算机上,验证是否使用适当的用户名进行连接。有关适当用户名的完整列表,请参阅错误:未找到主机密钥、权限被拒绝(公钥)或身份验证失败、权限被拒绝

验证私钥是否正确

1.    打开 Amazon EC2 控制台,然后选择实例

2.    查找要使用 SSH 连接的 EC2 实例。

3.    在密钥名称列中,验证您通过 SSH 连接时使用的私钥的名称:

PuTTY

验证 SSH 私钥是否与您在控制台中 EC2 实例的密钥名称列中看到的私钥相同。

验证是否已将私钥 (.pem) 文件转换为 PuTTY 可识别的格式 (.ppk)。有关详细信息,请参阅 使用 PuTTYgen 转换私钥

macOS 或 Linux

通过运行以下命令,确保已更改密钥对文件的权限,以便只有您才能来查看它:

$ chmod 400 my-key-pair.pem

检查在 -i 标志后指定的目录和文件名,确保它是指向私钥的正确路径,如以下示例命令所示:

$ ssh -i my-key-pair.pem ec2-user@52.4.XX.XX