如何解决使用 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 键。如果您已连接到串行控制台,则系统会返回登录提示。如果屏幕仍然黑屏,您可以使用以下信息,帮助解决连接到串行控制台时出现的问题:

  • **检查您是否已配置对串行控制台的访问权限。**有关详细信息,请参阅配置对 EC2 Serial Console 的访问权限

  • **使用 SysRq 连接到串行控制台。**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 键。

您现在已登录到该实例,可以使用串行控制台进行故障排除。

**注意:**您也可以使用自己的密钥和 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 实例时出现“服务器拒绝了我们的密钥”错误?

**错误:“imported-openssh-key”或“Putty 致命错误”:**要解决此错误,请参阅为什么我在连接到 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例时收到“imported-openssh-key”或“Putty 致命错误”错误?

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

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

自动解决 SSH 错误

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

相关信息

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

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

解决实例连接问题

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