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

2 分钟阅读
0

我在连接到 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例时收到“imported-openssh-key”或“Putty Fatal Error”错误。

简短描述

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

Using username "root". Authentication with public key "imported-openssh-key" Please login as the user "ec2-user" rather than the user "root".

-或-

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

PuTTY Fatal Error: Disconnected: No supported authentication methods available (server sent: publickey) OK

在下列情况下,可能会发生这些错误:

  • 您与 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

使用 EC2 Serial Console

如果您启用了适用于 Linux 的 EC2 Serial Console,则可以使用它对支持的基于 Nitro 的实例类型裸机实例进行故障排除。您可以使用 Amazon EC2 控制台或 AWS 命令行界面(AWS CLI)。使用 EC2 Serial Console 时,无需有效的连接即可连接到您的实例。

**注意:**如果您之前没有使用过 EC2 Serial Console,请确保查看前提条件配置访问,然后再尝试连接。

1.打开 Amazon EC2 控制台

2.选择实例

3.选择实例,然后依次选择操作监控和故障排除EC2 Serial Console连接

-或-

选择实例,然后依次选择连接EC2 Serial Console连接

此时会在浏览器内打开一个终端窗口。

4.按 Enter。如果您连接到 Serial Console,系统会返回登录提示符。如果屏幕仍然黑屏,您可以使用以下信息,帮助解决连接到 Serial Console 时出现的问题:

  • **检查您是否已配置对 Serial Console 的访问权限。**有关更多信息,请参阅配置对 EC2 Serial Console 的访问权限

  • **使用 SysRq 连接到 Serial Console。**SysRq 不要求您通过基于浏览器的客户端进行连接。有关更多信息,请参阅使用 SysRq 对 Linux 实例进行故障排除

  • **重启 getty。**如果可使用 SSH 访问您的实例,请使用 SSH 连接到您的实例,然后使用以下命令重启 getty。

    [ec2-user ~]$ sudo systemctl restart serial-getty@ttyS0
  • **重启实例。**您可以使用 SysRq、EC2 控制台或 AWS CLI 重启您的实例。有关更多信息,请参阅](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SysRq.html)使用 SysRq 对 Linux 实例进行故障排除[或重启实例

5.在登录提示符处,输入您之前设置的基于密码的用户的用户名,然后按 Enter

6.在密码提示符处,输入密码,然后按 Enter

您现在已登录到该实例,可以使用 Serial Console 进行故障排除。

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

有关使用 EC2 Serial Console 的更多信息,请参阅连接到 EC2 Serial Console

相关信息

为什么我无法使用 SSH 连接到 Amazon EC2 Linux 实例?

如何解决使用 SSH 连接到 Amazon EC2 Linux 实例时出现的问题

Amazon EC2 密钥对和 Windows 实例

AWS 官方
AWS 官方已更新 1 年前