【问题标题】:SSH Connection timed out on EC2 UbuntuEC2 Ubuntu 上的 SSH 连接超时
【发布时间】:2021-01-12 02:18:19
【问题描述】:

我正在尝试在 Ubuntu 18.04 上使用 Let's Encrypt 保护我的 apache,

我运行了这些命令:

$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt install python-certbot-apache
$ sudo ufw 启用
$ sudo ufw 允许 'Apache Full'

在最后一个命令之后,终端冻结了,所以我决定关闭它并重新连接,希望它真的能重新连接。
不幸的是,它返回一条消息:

ssh: 连接到主机 <...some public ipv4 dns> port 22: Connection timed out

我检查了安全组以查看 SSH 是否设置为 Anywhere,是的设置。

我的猜测是我搞砸了 ufw 配置(或者可能不是),但我无法确认,因为我无法通过 ssh 连接到我的 ec2 实例。

编辑:
我尝试停止并启动实例,导致它更改其公共 IP 地址,我仍然无法 ssh 到:(

【问题讨论】:

  • 这可能会更好在superuser上提问
  • @ChrisWilliams 哦,我的错,我还是把它留在这里希望有人知道解决方法:)
  • 您可能已将自己锁定在计算机之外。我真的觉得使用 AWS 时不需要ufw,但要恢复,请参阅this link
  • 您是否尝试使用 AWS 账户中的控制台连接到主机?
  • 是的,没有运气。创建了一个新的实例,我可以将其计入我的经验中,以始终备份任何内容。幸好内容还不算大。

标签: amazon-web-services ssl amazon-ec2 ssh ubuntu-18.04


【解决方案1】:

问题可能是因为ufw 默认没有allow 22 规则集,所以在启用ufw 之前尝试运行sudo ufw allow 22sudo ufw allow ssh

要在启用 ufw 之前允许 ssh,请尝试运行以下命令,将规则添加到 /etc/ufw/user.rules

sudo ufw allow ssh

所以当用户启用ufw 时,它会从文件中读取已经存在的规则,并且不会终止或阻止用户访问。

然后运行以下命令将使用户可以轻松访问实例而不会出现任何问题。

sudo ufw enable
sudo ufw allow 443
sudo ufw status

但是,在使用云配置实例时,使用 security groups 的可能性更大且更容易,这将提供更高级别的访问权限来使用特定实例及其相应规则。

【讨论】: