启动带有扩展HD卷的Ubuntu 14.04 EC2实例之后,如果Connection refused ,则ssh进入该实例。
我的一台Ubuntu 14.04 EC2机器的HD尺寸很小。 为了解决这个问题,我遵循AWS自己的HD扩展手册 :
除此之外,如果有问题的话,我借此机会在机器上添加弹性IP 。
在启动机器后,我不断地收到Connection refused错误消息。 我试图从VPC内部的私有IP和外部的ssh。 我使用了XX.X.XXX.XX IP和ec2-XX-X-XXX-XX.compute-1.amazonaws.com DNS名称,以及我从AWS下载的原始.pem密钥创build和我放在机器的.ssh/authorized_keys中的ssh密钥。
我得到相同的回应:
ssh:连接主机ec2-XX-X-XXX-XX.compute-1.amazonaws.com端口22:连接被拒绝
/etc/ssh/sshd_config删除PermitRootLogin行 。 Connection refused 。 /dev/sda1 。 更新 : 问题解决了 。 在这里感谢所有人!
只是把这个肮脏的黑客脚本,我用它来debugging一次(你只需要安装在机器上的Python 2.xx)。 这是肮脏的,但无论如何可以帮助!
将卷连接并挂载到另一个虚拟机上,并在其上创build一个文件,例如/whatever_mount_path/you_like/cgi-bin/cmd.py('cgi-bin'很重要),内容如下:
#!/usr/bin/env python import os br='<br/>' print "Content-Type: text/html" qs=os.environ['QUERY_STRING'] qs = {qs.split('=')[0]:qs.split('=')[1] for qs in os.environ['QUERY_STRING'].split('&')} print "cmd: ", qs ['cmd'], br*2 res = os.popen(qs['cmd']).read().replace('\n',br) print res
然后在你的卷的“/etc/rc.local”中添加这些行:
cd /path_to_cgi-bin #should be the path to your cgi-bin directory created above, without the mount path nohup python -m CGIHTTPServer 8000 >> nohup.out 2>&1 &
将音量重新连接到最初的机器,然后启动它。 从现在开始,您可以通过将您的cmd设置为GET查询string,从Web浏览器执行系统命令。 例如:
http://<YOUR VM IP>:8000/cgi-bin/cmd.py?cmd=netstat -ltpn | grep 22
这将由您的浏览器编码为:
http://<YOUR VM IP>:8000/cgi-bin/cmd.py?cmd=netstat%20-ltpn%20|%20grep%2022
只要确保端口8000是免费的,并且您的安全组configuration正确
在与AWS支持者进行聊天支持会话之后,我们发现了这个问题。
我扩展了两个卷 – /dev/sda1和/dev/sdf 。 当我将扩展卷连接到机器时,第二个作为不同的设备连接( /dev/sdg ,如果我的记忆很好)。 这导致了一些启动问题, sshd从来没有出现。
当支持者注意到这个差异时,我把音量重新加到了/dev/sdf ,一切正常。
谢谢大家的帮助 – 你一直很棒!
Connection refused通常意味着在相关IP:端口上没有任何监听。 通常情况下,您可以通过使用OOB控制台login到系统并运行netstat来确认
netstat -tunlp | grep :22
会确认有没有在22号港口上收听。
由于您可能没有OOB控制台,因此您不得不在另一个实例上安装卷并在日志和configuration文件中进行挖掘。
检查您的sshd是否configuration为在正确的接口和端口上侦听。 当你在那里增加LogLevel,以便下次启动时获得更多的信息。
挖掘所有的日志,看看是否有任何相关的消息。
我想你也可以通过编辑一个相关的文件并运行一个netstat命令来为系统添加一个cron作业。 我不使用Ubuntu,但类似的东西
@reboot root netstat -tunlp >>/tmp/netstat.out
在/ etc / crontab中(或者Ubuntu使用的任何东西)会在启动后得到系统的快照
虽然我期望它会给出不同的错误消息,请确保EC2安全组configuration正确。