Почему я не смог подключиться к своему экземпляру AWS ec2, созданному с помощью AWS CloudFormation? - PullRequest
0 голосов
/ 24 апреля 2019

Я создаю экземпляр EC2 с использованием CloudFormation, в котором упоминаются VPC, подсеть и группа безопасности. Однако, когда экземпляр запускается, я не могу подключиться к нему по ssh и получить следующее сообщение:

ssh -i aws_jenkins.pem ec2-user@34.217.129.89

Невозможно установить подлинность хоста '34 .217.129.89 (34.217.129.89). Отпечаток ключа ECDSA - SHA256: rs3bjVKolzdmktzfiSd0Oo5RU6dLdT / PGHpycStgFK8. Отпечаток ключа ECDSA: MD5: 7f: cc: 61: c4: f3: 1a: b7: 45: 9a: f0: da: e8: 0c: a4: d9: bc.

Вы уверены, что хотите продолжить подключение (да / нет)? да

Предупреждение. Постоянно добавлено «34 .217.129.89» (ECDSA) в список известных хостов.

В доступе отказано (publickey, gssapi-keyex, gssapi-with-mic).

Однако, если я создаю еще один EC2 из консоли AWS

Использование одного и того же ImageID, VPC, Subnet, SecurityGroup и Key. Я могу SSH к нему.

Но почему экземпляр, созданный с помощью CloudFormation, не поддерживает SSH

Я не могу решить эту проблему, любое понимание / решение очень ценится.

AWSTemplateFormatVersion: 2010-09-09

Parameters:

  EnvironmentName:
    Description: An environment name that will be prefixed to resource names
    Type: String

  VpcCIDR: 
    Description: Please enter the IP range (CIDR notation) for this VPC
    Type: String
    Default: 10.192.0.0/16

  PublicSubnet1CIDR:
    Description: Please enter the IP range (CIDR notation) for the public subnet in the first Availability Zone
    Type: String
    Default: 10.192.10.0/24

  PublicSubnet2CIDR:
    Description: Please enter the IP range (CIDR notation) for the public subnet in the second Availability Zone
    Type: String
    Default: 10.192.11.0/24

  InstanceType:
    Description: WebServer EC2 instance type
    Type: String
    Default: t2.micro
    AllowedValues: [ t1.micro, t2.nano, t2.micro, t2.small, t2.medium]
    ConstraintDescription : must be a valid EC2 instance type.

  KeyName:
    Description: The EC2 Key Pair to allow SSH access to the instances
    Type: AWS::EC2::KeyPair::KeyName
    Default: jenkins-test
    ConstraintDescription: must be the name of an existing EC2 KeyPair.

  SSHLocation: 
    Description: The IP address range that can be used to SSH to the EC2 instances
    Type: String
    MinLength: 9
    MaxLength: 18
    Default: 0.0.0.0/0
    AllowedPattern: "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})"
    ConstraintDescription: must be a valid IP CIDR range of the form x.x.x.x/x.

Resources:

  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: !Ref VpcCIDR
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags: 
      - Key: Name
        Value: !Ref EnvironmentName

  InternetGateway:
    Type: AWS::EC2::InternetGateway
    DependsOn: VPC
    Properties:
      Tags:
      - Key: Name
        Value: !Ref EnvironmentName

  InternetGatewayAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      InternetGatewayId: !Ref InternetGateway
      VpcId: !Ref VPC

  PublicSubnet1: 
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPC
      AvailabilityZone: !Select [ 0, !GetAZs ]
      CidrBlock: !Ref PublicSubnet1CIDR
      MapPublicIpOnLaunch: true
      Tags: 
      - Key: Name 
        Value: !Sub ${EnvironmentName}-Public-Subnet-(AZ1)

  PublicSubnet2:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPC
      AvailabilityZone: !Select [ 1, !GetAZs ]
      CidrBlock: !Ref PublicSubnet2CIDR
      MapPublicIpOnLaunch: true
      Tags:
      - Key: Name
        Value: !Sub ${EnvironmentName}-Public-Subnet-(AZ2)     

  PublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties: 
      VpcId: !Ref VPC
      Tags: 
      - Key: Name 
        Value: !Sub ${EnvironmentName} Public Routes

  DefaultPublicRoute: 
    Type: AWS::EC2::Route
    DependsOn: InternetGatewayAttachment
    Properties: 
      RouteTableId: !Ref PublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref InternetGateway

  PublicSubnet1RouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      RouteTableId: !Ref PublicRouteTable
      SubnetId: !Ref PublicSubnet1

  PublicSubnet2RouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      RouteTableId: !Ref PublicRouteTable
      SubnetId: !Ref PublicSubnet2


  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access and HTTP to instance
      SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: !Ref SSHLocation

      - IpProtocol: tcp
        FromPort: 80
        ToPort: 80
        CidrIp: !Ref SSHLocation
      VpcId: !Ref VPC
      Tags:
      - Key: Name
        Value: TestSecurity_group

  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-061392db613a6357b
      InstanceType: !Ref InstanceType
      SubnetId: !Ref PublicSubnet1
      KeyName: !Ref KeyName
      SecurityGroupIds:
      - !Ref InstanceSecurityGroup
      Tags:
      - Key: Name
        Value: TestServer

1 Ответ

0 голосов
/ 24 апреля 2019

В ваших параметрах у вас есть:

KeyName:
    Description: The EC2 Key Pair to allow SSH access to the instances
    Type: AWS::EC2::KeyPair::KeyName
    Default: jenkins-test
    ConstraintDescription: must be the name of an existing EC2 KeyPair.
  1. Вы позволяете ему строить, используя этот параметр по умолчанию?
  2. Вы уверены, что используете правильный соответствующий ключ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...