我已经设置了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协议。
有任何想法吗?
谢谢。
随着@ 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
看起来像sshd的可能已停止的某些原因。 是实例EBS支持? 如果多数民众赞成的情况下,尝试将其关闭,并启动它备份。 这应该解决的问题。
此外,你可以从AWS Web控制台通过ssh? 他们有一个Java插件那里SSH连接实例。
对于那些你们谁过这个职位,因为你无法通过SSH进入一个重新启动后您的EC2实例来了, 这是跨张贴到在serverfault类似的问题 :
从关于这一主题的AWS开发者论坛发帖 :
尝试停止破碎情况下,拆卸EBS卷,以及将它作为一个辅助卷到另一个实例。 一旦你在什么地方安装在另一实例破卷,检查/ etc / sshd_config文件(接近底部)。 我有几个RHEL实例,其中百胜scrogged sshd_config中插入重复行的底部导致sshd的失败上,因为语法错误的启动。
一旦你已经固定,只是卸载卷,分离,重新连接到您的其他实例,并再次UP烈焰回来。
让我们来打破这种下来,用链接到AWS文档:
- 停止破碎的实例 ,并通过进入EC2管理控制台,点击“弹性块存储”>“卷”,与您停止实例关联的卷上右击拆下EBS(根)卷。
- 在同一区域内启动一个新的实例和相同的操作系统作为破实例 ,然后附原始EBS根卷为辅助卷到新的实例 。 下面,在步骤4中的命令假定装入卷到一个所谓的“数据”文件夹。
- 一旦你安装了破碎的体积某处另一个实例 ,
- 通过发出以下命令检查“的/ etc / sshd_config中”为重复的条目文件:
-
cd /etc/ssh
-
sudo nano sshd_config
-
ctrl-v
一堆时间才能到文件底部 -
ctrl-k
所有在底部提线“的PermitRootLogin没有密码”和“UseDNS不” -
ctrl-x
和Y
保存并退出编辑的文件
- @Telegard 指出(在他的评论) ,我们已经只有固定的症状。 我们可以通过固定在“的/etc/rc.local”文件注释掉3条相关线路的原因 。 所以:
-
cd /etc
-
sudo nano rc.local
- 寻找“的PermitRootLogin ......”行并将其删除
-
ctrl-x
和Y
保存并退出编辑的文件
- 一旦你已经固定,只是卸载卷 ,
- 通过进入EC2管理控制台,点击“弹性块存储”分离>“卷”,与您停止实例关联的卷上单击鼠标右键,
- 重新连接到您的其他实例和
- 火再次备份 。
这发生在我的红帽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文件的底部,去除所有重复的条目,并添加额外的换行符在末尾。
转到您的AWS管理控制台>选择实例>点击鼠标右键,选择“获取系统日志”这将列出什么地方出了错。
我被分离的EBS锁定了类似的ssh却忘了修改/ etc / fstab文件
有同样的问题,但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访问。