Amazon EC2 - 重启后没有 SSH,连接被拒绝

Ste*_*adH 19 cloud ssh amazon-ec2

我已经复制了两三次,所以我猜我正在做的事情有问题。

这是我的步骤:

  1. 使用以下命令通过 EC2 管理控制台启动新实例:Ubuntu Server 13.10 - ami-ace67f9c(64 位)
  2. 使用默认值启动(使用我现有的密钥对)
  3. 实例启动。我可以使用 Putty 或 Mac 终端通过 SSH 连接到它。成功!
  4. 我重启实例
  5. 10 分钟后,当实例应该备份并运行时,我的终端连接显示:

    stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem ubuntu@54.201.200.208
    OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
    debug1: Reading configuration data /etc/ssh_config
    debug1: Applying options for *
    debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
    debug1: connect to address 54.201.200.208 port 22: Connection refused
    ssh: connect to host 54.201.200.208 port 22: Connection refused
    stead:~ stead$
    
    Run Code Online (Sandbox Code Playgroud)

好的,我知道公共IP地址可以更改,因此检查EC2管理控制台,我验证它是相同的。奇怪的。只是为了好玩,我尝试连接公共 DNS 主机名:ec2-54-201-200-208.us-west-2.compute.amazonaws.com。没有骰子,结果相同。

即使使用内置于 EC2 控制台的 Java SSH 客户端连接,我也收到连接被拒绝。

我检查了安全组。此实例在组 launch-wizard-4 中。查看该组的入站配置,端口 22 允许从 0.0.0.0/0 进入,因此它应该在任何地方。我知道我正在访问我的实例,这是正确的安全组,因为我无法 ping 实例。如果我为这个安全组启用 ICMP,我的 ping 会突然通过。

我在互联网上发现了一些其他带有类似错误消息的帖子,但大多数似乎可以通过调整防火墙设置轻松解决。我已经尝试了其中的一些,但没有运气。

我猜我错过了一个简单的 EC2 步骤。感谢您提供的任何帮助,我很乐意提供更多信息或进一步测试!

更新 - 这是我来自 Amazon EC2 控制台的系统日志:http : //pastebin.com/4M5pwGRt

Jer*_*nch 19

来自AWS 开发人员论坛关于此主题的帖子

尝试停止损坏的实例,分离 EBS 卷,并将其作为辅助卷附加到另一个实例。将损坏的卷安装到另一个实例的某个位置后,请检查 /etc/sshd_config 文件(靠近底部)。我有几个 RHEL 实例,其中 Yum 在 sshd_config 底部插入重复行,导致 sshd 由于语法错误而在启动时失败。

一旦你修复了它,只需卸载卷,分离,重新连接到你的另一个实例并再次启动它。

让我们分解一下,并提供 AWS 文档的链接:

  1. 通过进入 EC2 管理控制台,单击“弹性块存储”>“卷”,右键单击与您停止的实例关联的卷,停止损坏的实例并分离 EBS(根)卷。
  2. 在与损坏的实例相同的区域和相同的操作系统中启动一个新实例然后将原始 EBS 根卷作为辅助卷附加到您的新实例。下面第 4 步中的命令假设您将卷安装到名为“data”的文件夹中。
  3. 一旦你在另一个实例的某个地方安装了损坏的卷
  4. 通过发出以下命令检查“/etc/sshd_config”文件中的重复条目:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v 多次到达文件底部
    • ctrl-k 底部的所有行都提到“没有密码的 PermitRootLogin”和“UseDNS no”
    • ctrl-xY保存并退出编辑的文件
  5. @Telegard 指出(在他的评论中)我们只修复了症状。我们可以通过注释掉“/etc/rc.local”文件中的 3 个相关行来修复原因。所以:
    • cd /etc
    • sudo nano rc.local
    • 查找“PermitRootLogin...”行并删除它们
    • ctrl-xY保存并退出编辑的文件
  6. 一旦你修复了它,只需卸载卷
  7. 通过进入 EC2 管理控制台,单击“Elastic Block Store”>“Volumes”,右键单击与您停止的实例关联的卷来分离,
  8. 重新附加到您的另一个实例
  9. 再次点燃它


oro*_*uig 8

今天在我的 ec2 实例上有类似的行为,并追踪到这个问题:当我做 sudo reboot now 机器挂起时,我必须从 aws 管理控制台手动重新启动它,当我 sudo reboot 重新启动时就好了。显然,“现在”不是重启的有效选项,正如此处指出的https://askubuntu.com/questions/397502/reboot-a-server-from-command-line

想法?

  • @VaibhavKumar 来自 AWS 控制台:关闭实例并再次打开。 (2认同)
  • @oromoiluig 这很重要!它似乎只有在您通过 EC2-Web 界面停止和启动实例时才起作用。如果您仅单击重新启动,实例将保持卡住状态。 (2认同)