我在连接 Amazon Elastic Compute Cloud (Amazon EC2) Linux 实例时收到“imported-openssh-key”或“Putty 致命错误”错误。
简短描述
使用 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 串行控制台
如果您打开了适用于 Linux 的 EC2 串行控制台,则可以排查支持的 Nitro 实例类型和裸机实例问题。您可以访问 Amazon EC2 控制台或 Amazon 命令行界面 (Amazon CLI)。使用 EC2 串行控制台时,无需有效的连接即可连接实例。
**注意:**如果您之前没有使用过 EC2 串行控制台,请确保查看先决条件和配置访问权限,然后再尝试连接。
1.打开 Amazon EC2 控制台。
2.选择实例。
3.选择实例,然后选择操作、监控和排查问题、EC2 串行控制台、连接。
-或-
选择实例,然后选择连接、EC2 串行控制台、连接。
即会打开浏览器内终端窗口。
4.按 Enter。如果您连接到串行控制台,则会返回登录提示窗口。如果仍然黑屏,您可以使用以下信息,帮助解决串行控制台连接问题:
5.在登录提示处,输入您之前设置的带密码用户的用户名,然后按 Enter。
6.在密码提示处,输入密码,然后按 Enter。
您现已登录实例,可以使用串行控制台排查问题。
您也可以使用自己的密钥和 SSH 客户端进行连接.
有关使用 EC2 串行控制台的更多信息,请参阅连接到 EC2 串行控制台。
相关信息
为什么我无法使用 SSH 连接到 Amazon EC2 Linux 实例?
如何排查使用 SSH 连接到 Amazon EC2 Linux 实例时出现的问题
Amazon EC2 密钥对和 Windows 实例