运行EC2实例突然拒绝SSH连接(Running EC2 instance suddenly ref

2019-08-04 15:21发布

我已经设置了EC2实例前几天,甚至昨晚我能够SSH到它没有问题。 今天早上,我不能ssh到它。 端口22已经安全组中开放以来,昨晚我没有改变任何东西。

错误:

ssh: connect to host [ip address] port 22: Connection refused

我最近也有类似的问题,我无法弄清楚为什么发生,所以我不得不创建一个新的实例,再设置它,并连接和配置所有EBS储存到新的一个。 我花了几个小时......而现在它的再次发生。 在前面的一个,我已经安装了denyhost ,这可能阻止我,但在目前的一个,只有的Apache2和MySQL运行。

目前的情况下已经高达16小时了,所以我不认为这是因为它没有完成启动...此外,22端口是开放给所有来源(0.0.0.0/0)并使用TCP协议。

有任何想法吗?

谢谢。

Answer 1:

随着@ abhi.gupta200297的帮助下,我们能够解决这个问题。

问题是在错误/etc/fstab ,并应该的sshd之后开始fstab是成功的。 但事实并非如此,因此,sshd的将不会启动,这就是为什么它被拒绝的连接。 解决方案是创建一个临时的实例,从安装原始实例的根EBS,并从注释掉的东西fstab ,瞧,它让我重新连接。 而对于未来,我只用停止fstab外壳,创造一堆命令来挂载EBS卷目录和在加入他们/etc/init.d/ebs-init-mount文件,然后运行update-rc.d ebs-init-mount defaults初始化文件,我不再具有锁定SSH的问题。

UPDATE 2015年4月23日

亚马逊团队创建类似问题的视频教程,并展示如何使用这种方法进行调试: https://www.youtube.com/watch?v=_P29ZHu_feU



Answer 2:

看起来像sshd的可能已停止的某些原因。 是实例EBS支持? 如果多数民众赞成的情况下,尝试将其关闭,并启动它备份。 这应该解决的问题。

此外,你可以从AWS Web控制台通过ssh? 他们有一个Java插件那里SSH连接实例。



Answer 3:

对于那些你们谁过这个职位,因为你无法通过SSH进入一个重新启动后您的EC2实例来了, 这是跨张贴到在serverfault类似的问题 :

从关于这一主题的AWS开发者论坛发帖 :

尝试停止破碎情况下,拆卸EBS卷,以及将它作为一个辅助卷到另一个实例。 一旦你在什么地方安装在另一实例破卷,检查/ etc / sshd_config文件(接近底部)。 我有几个RHEL实例,其中百胜scrogged sshd_config中插入重复行的底部导致sshd的失败上,因为语法错误的启动。

一旦你已经固定,只是卸载卷,分离,重新连接到您的其他实例,并再次UP烈焰回来。

让我们来打破这种下来,用链接到AWS文档:

  1. 停止破碎的实例 ,并通过进入EC2管理控制台,点击“弹性块存储”>“卷”,与您停止实例关联的卷上右击拆下EBS(根)卷。
  2. 在同一区域内启动一个新的实例和相同的操作系统作为破实例 ,然后附原始EBS根卷为辅助卷到新的实例 。 下面,在步骤4中的命令假定装入卷到一个所谓的“数据”文件夹。
  3. 一旦你安装了破碎的体积某处另一个实例 ,
  4. 通过发出以下命令检查“的/ etc / sshd_config中”为重复的条目文件:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v一堆时间才能到文件底部
    • ctrl-k所有在底部提线“的PermitRootLogin没有密码”和“UseDNS不”
    • ctrl-xY保存并退出编辑的文件
  5. @Telegard 指出(在他的评论) ,我们已经只有固定的症状。 我们可以通过固定在“的/etc/rc.local”文件注释掉3条相关线路的原因 。 所以:
    • cd /etc
    • sudo nano rc.local
    • 寻找“的PermitRootLogin ......”行并将其删除
    • ctrl-xY保存并退出编辑的文件
  6. 一旦你已经固定,只是卸载卷 ,
  7. 通过进入EC2管理控制台,点击“弹性块存储”分离>“卷”,与您停止实例关联的卷上单击鼠标右键,
  8. 重新连接到您的其他实例和
  9. 火再次备份 。


Answer 4:

这发生在我的红帽EC2实例,因为这两条线正在自动追加每次我开始了我的实例时,在/ etc / ssh / sshd_config文件的末尾:

没有的PermitRootLogin密码
UseDNS没有

其中一个追加操作不换行做,所以sshd_config文件的尾部看起来像:

没有的PermitRootLogin密码
UseDNS noPermitRootLogin无需密码
UseDNS没有

导致的sshd无法启动在下次启动。 我认为这是由这里报告的错误引起的: https://bugzilla.redhat.com/show_bug.cgi?id=956531的解决方案是在sshd_config文件的底部,去除所有重复的条目,并添加额外的换行符在末尾。



Answer 5:

转到您的AWS管理控制台>选择实例>点击鼠标右键,选择“获取系统日志”这将列出什么地方出了错。



Answer 6:

我被分离的EBS锁定了类似的ssh却忘了修改/ etc / fstab文件



Answer 7:

有同样的问题,但SYS记录过这样的:

启动sshd的:在/ var /空/ sshd的必须由根而不是组或世界可写拥有。 [FAILED]

使用上述脱离体积和连接到连接实例相同的步骤。 然后使用:

须藤搭配chmod 755的/ var /空/ sshd的

须藤CHOWN根:根的/ var /空/ sshd的

( https://support.microsoft.com/en-us/help/4092816/ssh-fails-because-var-empty-sshd-is-not-owned-by-root-and-is-not-group )

然后分离并重新连接到原来的EC2实例,现在可以通过SSH访问。



文章来源: Running EC2 instance suddenly refuses SSH connection