无法通过 SSH 进入 AWS CloudFormation 堆栈实例

无法通过 SSH 进入 AWS CloudFormation 堆栈实例

我现在已经设置了一个可扩展的负载均衡器,它主要遵循这个模板:

https://github.com/satterly/AWSCloudFormation-samples/blob/master/LAMP_Multi_AZ.template

AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.Count将密钥调整为(基本上允许堆栈加载而没有收到成功信号)后0,我能够加载堆栈,并且可以看到所有可用的资源。

我可以看到正在创建的密钥的公共 DNS,但是我无法通过 SSH 进入实例。

我已向实例规则内的每个人开放了 SSH 访问权限,我可以在 AWS 控制台中确认这一点。

我还按照官方 AWS 文档中的建议为我的 VPC 配置了一条路由:https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/

我可以看到实例存在,但似乎我在某个地方限制了自己的访问。然而,在 AWS EC2 控制台中,设置似乎看起来与我能够通过 SSH 进入实例时一样。

这是我正在使用的 JSON 模板,您可以在其中查看我的所有设置,包括我的 VPC、子网、安全组等:https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

我收到以下命令的超时错误:(我的id_rsa密钥在 ec2 中有效)

ssh -i ~/.ssh/id_rsa ec2-user@<ec2_instance>

我如何通过 SSH 进入我的实例?提前感谢您的帮助!

答案1

问题是 CloudFormation 模板RouteTable使用默认路由创建0.0.0.0/0正确地指向政府间气候变化专门委员会,但是您没有将其RouteTable与您的子网关联。

在此处输入图片描述

你需要做的是添加这两个路由表关联到模板:

        "Subnet1RT":{
            "Type" : "AWS::EC2::SubnetRouteTableAssociation",
                "Properties" : {
                    "RouteTableId" : { "Ref": "RouteTable" },
                    "SubnetId" : { "Ref": "Subnet1" }
                }
        },
        "Subnet2RT":{
            "Type" : "AWS::EC2::SubnetRouteTableAssociation",
                "Properties" : {
                    "RouteTableId" : { "Ref": "RouteTable" },
                    "SubnetId" : { "Ref": "Subnet2" }
                }
        },

然后更新堆栈...

在此处输入图片描述

并重新检查路由表

在此处输入图片描述

现在您应该能够通过 SSH 连接到实例:

~ $ ssh 54.209.123.119
Last login: Thu Nov  1 18:54:54 2018 from ...

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
[ec2-user@ip-10-0-2-229 ~]$ 

希望有帮助:)

相关内容