跳至内容

如何解决我的 Amazon EC2 Linux 实例的 SSH 连接问题?

2 分钟阅读
0

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

简短描述

如果您收到 Permission deniedConnection refusedResource temporarily unavailable 错误消息,则您的 Amazon EC2 实例可能存在连接问题。

要解决 SSH 连接问题,请使用以下方法之一:

解决方法

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

确保您有以下详细信息:

  • 与实例关联的正确私钥(.pem 文件)
  • 您的 Linux 发行版的正确用户名
  • 您的实例的 IP 地址或 DNS 名称
  • 与您的实例的网络连接

运行 AWSSupport-TroubleshootSSH 运行手册

AWSSupport-TroubleshootSSH 自动化可帮助您识别并自动解决 SSH 实例连接问题。

先决条件:

您可以使用 AWS CLI 来运行 AWSSupport-TroubleshootSSH 自动化。

或者,使用 Systems Manager 控制台并配置以下设置:

  • Automation document(自动化文档)下,选择 AWSSupport-TroubleshootSSH
  • Document details(文档详细信息)下,对于 Runbook version(运行手册版本),选择 Default version at runtime(运行时的默认版本)。
  • Input parameters(输入参数)下,对于 InstanceID,输入无法访问的实例,对于 Action(操作),输入 FixAll

有关 AWSSupport-TroubleshootSSH 自动化的详细信息,请参阅 Smart RDP and SSH remediation with AWS Systems Manager Automation API actions(使用 AWS Systems Manager Automation API 操作进行智能 RDP 和 SSH 修复)

使用启用详细消息收发的 SSH

完成以下步骤:

  1. 在启用详细消息收发选项的情况下,使用 SSH 连接到您的 Linux 实例:
    user@localhost:~$ ssh -vvv -i my_key.pem ec2-user@11.22.33.44
    **注意:**请将 my_key.pem 替换为您的私钥文件,将 ec2-user@11.22.33.44 替换为您的用户名。有关详细信息,请参阅使用 SSH 客户端连接到 Linux 实例
  2. 要确定问题的原因,请查看 SSH 客户端输出中的错误消息。
  3. 确定错误消息后,请参阅“解决 SSH 错误”部分以解决您的问题。

要了解有关详细消息收发或解决其他类型的错误消息的详细信息,请参阅如何解决我的 Amazon EC2 Linux 实例的 SSH 连接问题?

使用 Amazon EC2 Serial Console 连接到基于 Nitro 的实例和裸机实例

要直接在您的实例上解决 SSH 问题,您可以对基于 Nitro 的实例裸机实例使用 EC2 Serial Console

**注意:**如果您是首次使用 EC2 Serial Console,请在连接到实例之前查看先决条件配置访问权限

如果您在连接到实例后出现黑屏,请完成以下任务:

使用会话管理器

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

解决 SSH 错误

“Connection timed out”或“Connection refused”

当服务器不响应客户端的请求时,将会出现 Connection timed out 错误。当实例到达主机但由于没有服务侦听 SSH 端口而主动拒绝连接时,将会出现 Connection refused 错误。要解决这些问题,请参阅如何解决使用 SSH 连接到我的 EC2 实例时出现的“Connection refused”或“Connection timed out”错误?

如果您在虚拟私有云 (VPC) 上收到 Connection timed out 错误,则可能存在网络配置问题。您的安全设置、网络访问控制列表(网络 ACL)、VPC 路由表或本地防火墙的错误配置可能会导致此问题。要解决此问题,请参阅如何排查来自互联网的 Amazon EC2 实例连接超时错误?

“Permission denied”或“Authentication failed”

当您无法通过 SSH 进行身份验证以访问您的实例时,将会出现 Permission deniedAuthentication failed 错误。密钥或权限配置问题可能会导致此问题。要解决此问题,请参阅如何解决访问 EC2 实例时收到的“Permission denied (publickey)”或“Authentication failed, permission denied”错误?

“Server refused our key”

当您使用 SSH 尝试连接实例并使用不正确的私钥、用户名或权限时,将会出现 Server refused our key 错误。或者,错误配置的 SSH 服务器配置可能会导致此问题。要解决这些问题,请参阅当我尝试通过 SSH 连接到 EC2 实例时,为什么会收到“Server refused our key”错误消息?

“imported-openssh-key”或“Putty Fatal Error”

当您使用不正确的用户名通过 SSH 连接到 EC2 Linux 实例时,将会出现 imported-openssh-key 或 Putty Fatal Error 错误。或者,您在 SSH 会话协商期间使用了错误的私钥。要解决这些问题,请参阅为什么我在连接到 Amazon EC2 Linux 实例时收到“imported-openssh-key”或“PuTTY Fatal Error”错误?

“Enter passphrase for key 'my_key.pem'”

当您为密钥文件创建密码但没有手动输入密码时,将会出现 Enter passphrase for key 'my_key.pem' 错误。要解决此问题,请手动输入密码。或者,使用 ssh-agent 自动加载密钥。

相关信息

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

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

排查 Amazon EC2 Linux 实例的连接问题

没有评论

相关内容