【问题标题】:Can't create a config to connect to aws EC2 over ssh无法创建配置以通过 ssh 连接到 aws EC2
【发布时间】:2020-09-29 10:51:17
【问题描述】:

如果我这样连接:

ssh -i "aws.pem" ubuntu@ec2-*-***-***-**.us-east-2.compute.amazonaws.com

一切正常,但如果我尝试为此设置配置:

Host sserv
        Hostname ec2-*-***-***-**.us-east-2.compute.amazonaws.com
        User ubuntu
        IdentityFile ~/.ssh/aws.pem

我无法连接...

这是我运行 ssh -v sserv 时得到的结果:

OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /home/mrlalatg/.ssh/config
debug1: /home/mrlalatg/.ssh/config line 20: Applying options for sserv
debug1: /home/mrlalatg/.ssh/config line 30: Applying options for sserv
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to *.*.*.* [*.*.*.*] port 22.
debug1: connect to address *.*.*.* port 22: Connection timed out
ssh: connect to host *.*.*.* port 22: Connection timed out

也用 sudo 尝试过:

OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
ssh: Could not resolve hostname sserv: Temporary failure in name resolution

添加:没有配置的成功连接的屏幕截图

注意:所有敏感信息都带有 *

【问题讨论】:

  • ssh 文件看起来不错。您确定您使用的是同一主机并且该手动 ssh 命令有效吗?
  • @Marcin 我确定,我复制粘贴了好几次...
  • @Marcin 添加了成功连接的截图
  • ssh 配置文件看起来不错。这也是我使用的。不明白为什么你会基于它超时。
  • @Marcin aws.pem 文件应该拥有哪些权限?我在上面使用了chmod 400,因为这就是 aws 的建议。也许这就是问题所在?

标签: amazon-web-services amazon-ec2 ssh


【解决方案1】:

连接到主机 ... 端口 22:连接超时

根据上述行,这看起来像是一个安全组问题。大多数超时问题与安全组有关。请检查您的安全组并确保您已为您的 IP 启用端口 22。如果您的 IP 是动态的,请检查当前 IP 和安全组 IP

同时检查aws.pem文件权限。

【讨论】:

  • OP 写道,没有配置文件,这一切都可以工作。否则,他将无法以任何方式连接。
【解决方案2】:

您提到调试日志中显示的 IP 地址与分配给实例的 IP 地址不匹配。

Amazon EC2 实例在停止和启动时可以更改 IP 地址。为避免这种情况发生,您可以为实例分配一个弹性 IP 地址,然后该实例将保持相同的 IP 地址。

实例可能收到了新的 IP 地址,但您尚未更新 config 文件中的条目,因此它仍在尝试连接到旧的 IP 地址。您应该更新配置文件中的主机名。

【讨论】:

  • 运行SSH命令时,调试显示的IP地址是否正确?如果不是,我建议您更改配置文件以使用 IP 地址而不是 DNS 名称。如果它显示错误的 IP 地址,那么您将需要追踪它的来源。
  • 我已经更改了配置文件,所以现在它有了弹性 ip
  • 调试日志中显示了什么?是否使用弹性 IP 地址?
  • 好的,我明白了,问题是我是个笨蛋,我有一个同名的配置条目比这个高。我真的很抱歉浪费你的时间..
【解决方案3】:

好吧,我明白了,我觉得浪费别人的时间很愚蠢。

问题是我有另一个同名的 ssh 配置条目比这个高,所以我实际上正在连接到我的旧服务器(它不再工作了)。我遇到了超时错误

【讨论】:

    猜你喜欢
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多