SSH kann nicht in die AWS CloudFormation-Stapelinstanz übertragen werden


9

Ich habe gerade einen skalierbaren Load Balancer eingerichtet, der hauptsächlich aus dieser Vorlage hervorgeht:

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

Nach dem Anpassen des AWS::AutoScaling::AutoScalingGroup.CreationPolicy.ResourceSignal.CountSchlüssels an 0(ermöglicht das Laden des Stapels ohne empfangene Erfolgssignale) konnte ich den Stapel laden und alle verfügbaren Ressourcen anzeigen.

Ich kann das öffentliche DNS der zu erstellenden Schlüssel sehen, aber ich kann kein SSH in die Instanz einfügen.

Ich habe einen offenen SSH-Zugriff auf alle Benutzer innerhalb meiner Instanzregeln. Ich kann dies in der AWS-Konsole bestätigen.

Ich habe auch eine Route für meine VPC konfiguriert, wie in den offiziellen AWS-Dokumenten empfohlen: https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-ssh-troubleshooting/

Ich kann sehen, dass die Instanzen existieren, aber es scheint, dass ich mich irgendwo auf den Zugriff beschränke. In der AWS EC2-Konsole scheinen die Einstellungen jedoch genauso auszusehen, als ob ich SSH in eine Instanz einbinden könnte.

Hier ist meine JSON-Vorlage, in der Sie alle meine Einstellungen anzeigen können, einschließlich meiner VPC, Subnetze, Sicherheitsgruppen usw.: Https://gist.github.com/dambrogia/e4cd93a64ae6f3a79d4a58d466f144f8

Ich id_rsaerhalte einen Timeout-Fehler vom folgenden Befehl: (Mein Schlüssel ist in ec2 gültig.)

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

Wie kann ich SSH in meine Instanzen einbinden? Vielen Dank im Voraus für die Hilfe!


2
Daumen hoch für die Aufnahme Ihrer aktuellen CFN-Vorlage! Es hilft wirklich :)
MLu

Antworten:


11

Das Problem ist, dass die CloudFormation-Vorlage eine RouteTablemit der Standardroute 0.0.0.0/0 erstellt, die korrekt auf das IGW verweist. Sie ordnen das jedoch nicht RouteTableIhren Subnetzen zu.

Geben Sie hier die Bildbeschreibung ein

Sie müssen der Vorlage diese beiden Routentabellenzuordnungen hinzufügen :

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

Dann aktualisieren Sie den Stapel ...

Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie die Routentabelle erneut

Geben Sie hier die Bildbeschreibung ein

Jetzt sollten Sie in der Lage sein, SSH zu den Instanzen:

~ $ 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 ~]$ 

Ich hoffe, das hilft :)


Vielen Dank so viel für die eingehende Antwort und Erklärung. Es hat wie ein Zauber funktioniert!
Domdambrogia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.