AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 714473
Accepted
Adam Matan
Adam Matan
Asked: 2015-08-16 22:45:48 +0800 CST2015-08-16 22:45:48 +0800 CST 2015-08-16 22:45:48 +0800 CST

EBS 扩展后 Ubuntu EC2 上的连接被拒绝

  • 772

问题

启动具有扩展 HD 卷的 Ubuntu 14.04 EC2 实例后,通过 ssh-ing 进入该实例失败并显示Connection refused.

EBS 扩展过程

我的一台 Ubuntu 14.04 EC2 机器在 HD 大小上运行不足。为了解决这个问题,我按照AWS自己的高清扩展手册:

  • 停了机器
  • 分离两个卷
  • 拍摄了两个卷的快照
  • 从快照创建了更大的卷
  • 附加新卷并启动机器

除此之外,我还借此机会向机器添加了一个弹性 IP,如果这很重要的话。

Connection refused启动机器后,我在 ssh 时不断收到错误消息。我尝试了从 VPC 内部到私有 IP 和外部的 ssh。我已经使用了XX.X.XXX.XXIP 和ec2-XX-X-XXX-XX.compute-1.amazonaws.comDNS 名称,以及我在创建时从 AWS 下载的原始.pem密钥,以及我放置在.ssh/authorized_keys机器中的 ssh 密钥。

我得到同样的回应:

ssh:连接到主机 ec2-XX-X-XXX-XX.compute-1.amazonaws.com 端口 22:连接被拒绝

笔记/我尝试了什么

  • 我已将卷连接到另一个实例并检查了它们。文件在那里。
  • 我尝试从PermitRootLogin/etc/ssh/sshd_config.
  • 我尝试使用 EC2 控制台中的 Java 客户端连接到机器。
  • 我尝试将原始卷连接到机器(扩展之前)。我还是明白了Connection refused。
  • 根 EBS 卷连接在/dev/sda1。

解决方案

更新:问题已解决。非常感谢这里的每一个人!

ssh
  • 3 3 个回答
  • 1504 Views

3 个回答

  • Voted
  1. Tom
    2015-08-17T02:23:50+08:002015-08-17T02:23:50+08:00

    只是把这个肮脏的hacky脚本,我用它来调试一次(你只需要在机器上安装python 2.xx)。这很脏,但无论如何都可以提供帮助!

    将您的卷附加并挂载到另一个 VM 并在其上创建一个文件,例如 /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 查询字符串从 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 空闲,并且您的安全组配置正确

    • 1
  2. Best Answer
    Adam Matan
    2015-08-17T03:10:46+08:002015-08-17T03:10:46+08:00

    在与 AWS 支持者进行聊天支持会话后,我们发现了问题所在。

    我已经扩展了两卷 -/dev/sda1和/dev/sdf. 当我将扩展卷连接到机器时,由于某种原因,第二个卷被附加为不同的设备(/dev/sdg如果我没记错的话)。这导致了一些启动问题并且sshd从未出现过。

    当支持者注意到差异时,我重新连接了音量/dev/sdf,一切正常。

    感谢大家的帮助——你们太棒了!

    • 1
  3. user9517
    2015-08-16T23:22:19+08:002015-08-16T23:22:19+08:00

    Connection refused通常意味着在相关 IP:Port 上没有任何监听。通常您可以通过使用 OOB 控制台登录系统并运行 netstat 来确认这一点,例如

    netstat -tunlp | grep :22
    

    将确认某些东西是否正在侦听端口 22。

    由于您可能没有 OOB 控制台,因此您不得不将卷安装在另一个实例上并在日志和配置文件中进行挖掘。

    检查您的 sshd 是否配置为侦听正确的接口和端口。当您在那里时,增加 LogLevel,以便下次启动时获得更多信息。

    挖掘所有日志,看看是否有任何相关消息。

    我想您也可以通过简单地编辑相关文件并让它运行 netstat 命令来向系统添加一个 cron 作业。我不使用 Ubuntu 但类似

    @reboot root netstat -tunlp >>/tmp/netstat.out
    

    在 /etc/crontab (或任何 Ubuntu 使用的)中将在系统启动后获得系统快照

    尽管我希望它会给出不同的错误消息,但请确保正确配置了 EC2 安全组。

    • 0

相关问题

  • 如何最好地设置 ssh 隧道以访问远程网络 (Linux)

  • SSH 和重定向

  • 通过 SSH 会话使用 NET USER 命令拒绝访问

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve