【问题标题】:can't SSH into EC2 instance, but have AWS console access无法通过 SSH 连接到 EC2 实例,但可以访问 AWS 控制台
【发布时间】:2021-06-28 04:27:40
【问题描述】:

我拥有 AWS 控制台的管理员权限,可以查看 EC2 实例、启动/停止等。但我无法通过 SSH 连接到 EC2。我不确定 .pem 键是否错误。

我必须进入什么选项?

我可以在 Linode 或 Digital Ocean 中重置 root 密码,然后远程 SSH 进入。 但我在 AWS 上没有这些选项。

我试过了,它挂了。前任。我的虚拟机 IP = 1.1.1.1

➜  ~ ssh -i ~/.ssh/app.pem ubuntu@1.1.1.1 -v
OpenSSH_8.1p1, LibreSSL 2.7.3
debug1: Reading configuration data /Users/alpha/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 47: Applying options for *
debug1: Connecting to 1.1.1.1 [1.1.1.1] port 22.
^C
➜  ~

如何进一步调试?如何获得 SSH 访问权限?

我该怎么办?

【问题讨论】:

  • 您的密钥没有被拒绝,因为 ssh 甚至没有在您的输出中连接。检查网络配置和安全组设置。
  • 首先检查安全组以允许 SSH 连接。

标签: amazon-web-services amazon-ec2 ssh


【解决方案1】:

您应该逐步完成创建与 AWS 的 SSH 连接所需的所有连接元素。

  1. 首先,确保您的本地网络允许连接。大多数家庭路由器允许出站到任何端口,但如果您使用的是工作网络,它们可能会过滤端口 22(SSH 的默认设置)。您可能需要确保您对计算机的出站请求不会被防火墙丢弃。

  2. 接下来,您需要确保 NACL 不会导致问题。您的 EC2 实例所在的 VPC 子网具有 NACL。默认情况下,它们不过滤任何内容。但是,您应该确保您没有过滤入站端口 22 TCP,或出站临时端口(端口 1024->65535)。这些临时端口是必需的,因为返回端口(您这边)在该端口范围内将是动态且随机的。

  3. 您需要确保您的实例附加了一个安全组,并且它允许端口 22 TCP (SSH) 入站。这很重要,因为默认情况下,它不允许任何入站端口。如果您需要创建安全组,可以在 EC2 服务页面上进行。至少在您的 IP 上创建一个允许 SSH 入站 TCP 的新 IP(如果您的 IP 为 2.3.4.5,则应在地址字段中输入 2.3.4.5/32)。然后将其附加到您的实例。附件应该是即时的(无需重新启动)。警告:如果您没有适当保护的实例,则允许所有 IP (0.0.0.0/0) 可能会很危险,因为它将允许所有 IP 尝试通过该端口进行连接。与 NACL 不同,安全组是有状态的,因此无需在您的安全组中列出临时端口。

  4. 我假设您正在使用“正常”的 AMI 进行引导,但如果这以前有效而现在无效,您应该考虑是否在操作系统级别使用防火墙将自己锁定。如果您以某种方式在操作系统级别设置规则以拒绝端口 22,或者如果 sshd 没有运行,那么由于显而易见的原因,您将遇到问题。此处的修复会很复杂,但如果您这样做的话,这是可能的。

  5. 您已经意识到您需要确保您拥有正确的密钥对。通过查看 EC2 页面上的实例数据来验证您使用的密钥对并使用该密钥登录。确保您为您的发行版使用正确的默认用户名(它们可能因类型而异 - 通常是“ec2-user”,但 centos 例如用户“centos”。YMMV,所以请查一下!)

如果您仍然遇到问题,您可以随时在包含您的实例的 VPC 上启用 VPC 流日志。这将为流入和流出您的 VPC 的每个数据包创建一个日志条目,以便您至少可以查看流量​​是否进入 VPC,如果是,是否被拒绝或转发到实例。

【讨论】:

    【解决方案2】:

    为了能够通过 SSH 连接到 EC2 实例,您需要配置 EC2 密钥对。如果您已经这样做了,但不知何故被“锁定”了,例如,您丢失了密钥,您应该能够使用 Systems Manager (SSM) 重新获得访问权限。

    在这里查看如何使用 SSM 连接到 EC2 实例:https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html

    最好的,斯蒂芬

    【讨论】:

    • 请注意,除非您的实例具有公共 IP,否则上述方法将不起作用。如果没有,您需要先进行额外的 VPC 配置。
    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 2021-12-06
    • 2013-01-06
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 2020-03-13
    • 2021-03-10
    相关资源
    最近更新 更多