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

2 分钟阅读
0

我无法连接到 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例,我希望解决这个问题。

解决方法

通过 SSH 连接到 EC2 实例,并启用详细消息。使用 SSH 客户端的输出消息来确定问题类型。您也可以使用 EC2 Serial Console(基于 Nitro 的实例和裸机实例)或 AWS Systems Manager 会话管理器连接到实例。然后,找出错误,使用常见错误疑难解答部分中的链接来解决问题。

连接到您的实例以确定问题

使用 SSH 进行连接

1.    通过 SSH 连接到 EC2 实例,并启用详细消息:

user@localhost:~$ ssh -v -i my_key.pem ec2-user@11.22.33.44

此示例使用私有密钥文件 my_key.pem 和用户名 ec2-user@11.22.33.44。将示例的密钥文件和用户名替换为您的密钥文件和用户名。有关更多信息,请参阅使用 SSH 连接到您的 Linux 实例。

2.    使用 SSH 客户端的输出消息来确定您遇到的问题类型。

在基于 Nitro 的实例和裸机实例上使用适用于 Linux 的 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

使用会话管理器进行连接

您可以使用 AWS Systems Manager 会话管理器连接到您的实例。连接后,您可以像使用其他连接方法一样,在实例上运行 bash 命令。

**注意:**在使用会话管理器进行连接之前,请确保完成必要的设置步骤。有关详细信息,请参阅设置会话管理器

1.    打开 Amazon EC2 控制台

2.    在导航窗格中,选择实例

3.    选择实例并选择连接

4.    对于连接方法,选择会话管理器

5.    选择连接

有关更多信息,请参阅使用会话管理器连接到您的 Linux 实例

排除常见错误

**错误: “连接超时”或“连接被拒绝”:**要排除此错误,请参阅我在尝试使用 SSH 连接到 EC2 实例时收到“连接被拒绝”或“连接超时”错误。如何解决此问题?

虚拟私有云(VPC)上的“连接超时”错误: 要排除此错误,请参阅如何排查来自互联网的 Amazon EC2 实例连接超时错误?

**错误: “权限被拒绝”或“身份验证失败”:**要排除此错误,请参阅我在尝试访问 EC2 实例时收到“权限被拒绝 (Publickey)”或“身份验证失败,权限被拒绝”错误。如何解决此问题?

**错误: “服务器拒绝了我们的密钥”:**要排除此错误,请参阅当我尝试使用 SSH 连接我的 EC2 实例时,为什么会出现“服务器拒绝了我们的密钥”错误?

**错误:“导入了 openssh 密钥”或“Putty 致命错误”:**要排除此错误,请参阅为什么在连接 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例时,我会收到“导入了 openssh 密钥”或“Putty 致命错误”错误?

错误: “输入‘my_key.pem’的密码”:

如果您为密钥文件创建了密码,但尚未手动输入密码,就会出现此错误。要排除此错误,请输入密码或使用 ssh-agent 自动加载密钥。

自动排除 SSH 错误

出现 SSH 错误的原因可能会有很多,例如资源暂时不可用运行 AWSSupport-TroubleshootSSH 自动化文档,自动查找并排除此类错误。

相关信息

如何解决使用 EC2 Instance Connect 连接到 EC2 实例时出现的问题?

如何对在 Wavelength Zone 中启动的 EC2 实例的 SSH 或 RDP 连接进行故障排除?

排查实例的连接问题

AWS 官方
AWS 官方已更新 10 个月前