Incapaz de ssh para um vagrant iniciado ec2 ubuntu instance

3

Depois de executar vagrant up --provider=aws , pude ver uma instância ec2 sendo criada e colocada em funcionamento. No entanto, vai invariavelmente preso neste ponto

==> default: Waiting for SSH to become available...

Eu tive que ctrl-c o job que resulta na finalização da dita instância ec2.

Parte da saída é

==> default:  -- Assigning a public IP address in a VPC: false 

Poderia ser um motivo?

Eu verifiquei duas vezes e assegurei que meu IP tenha permissão para se conectar ao VPC.

Aqui está uma saída de log mais detalhada quando o sinalizador de depuração está definido:

DEBUG ssh: Checking key permissions: /Users/antkong/.vagrant.d/insecure_private_key
 INFO ssh: Attempting SSH connection...
 INFO ssh: Attempting to connect to SSH...
 INFO ssh:   - Host: 54.186.111.213
 INFO ssh:   - Port: 22
 INFO ssh:   - Username: ubuntu
 INFO ssh:   - Password? false
 INFO ssh:   - Key Path: ["/Users/antkong/.vagrant.d/insecure_private_key"]
DEBUG ssh: == Net-SSH connection debug-level log START ==
DEBUG ssh: D, [2014-10-12T21:11:13.959627 #15559] DEBUG -- net.ssh.transport.session[80905170]: establishing connection to 54.186.111.213:22

DEBUG ssh: == Net-SSH connection debug-level log END ==
 INFO retryable: Retryable exception raised: #<Errno::ECONNREFUSED: Connection refused - connect(2)>
 INFO ssh: Attempting to connect to SSH...
 INFO ssh:   - Host: 54.186.111.213
 INFO ssh:   - Port: 22
 INFO ssh:   - Username: ubuntu
 INFO ssh:   - Password? false
 INFO ssh:   - Key Path: ["/Users/antkong/.vagrant.d/insecure_private_key"]
DEBUG ssh: == Net-SSH connection debug-level log START ==
DEBUG ssh: D, [2014-10-12T21:11:21.379386 #15559] DEBUG -- net.ssh.transport.session[81c9ff78]: establishing connection to 54.186.111.213:22

Aqui está uma lista parcial do arquivo do Vagrant:

  config.vm.provider :aws do |aws, override|
    # Change these values
    aws.access_key_id = "XXXX"
    aws.secret_access_key = "XXXX"
    aws.keypair_name = "ubuntu-my-app"
    aws.security_groups = ["my-app"]

    # Specify parameters required for an EC2 instance
    aws.instance_type = "t2.micro"

    # aws.associate_public_ip = true
    # aws.elastic_ip = true

    # Tags
    aws.tags = {
      'Name' => 'vtest',
    }

    # Defalut to US West (Northern California)
    aws.region = "us-west-2"
    aws.ami = "ami-33db9803"

    # Use a dummy box for the AWS provider
    override.vm.box = "dummy"
    override.ssh.username = "ubuntu" # is it a problem?

    # Change this value to the path of your private key
    # Did not work; comment out for now 
    # override.ssh.private_key_path = "./anthony_aws.id_rsa"
  end

O que há de errado com os arquivos de configuração / configuração acima?

    
por Anthony Kong 12.10.2014 / 12:40

4 respostas

3

Por favor, verifique o seguinte:

  • Sua chave privada deve ter permissões mínimas de leitura: 0600.
  • Sua chave pública deve ser incluída no arquivo authorized_keys do usuário do servidor ( ~/ssh/authorized_keys )
  • O endereço IP ao qual você está se conectando já não deve existir outro host em ./ssh/known_hosts em seu sistema local
  • Sua instância do EC2 deve estar em um grupo de segurança que permita TCP 22 de 0.0.0.0/0 ou o endereço do qual você está se conectando, por exemplo

    aws.security_groups = [ 'vagrant' ]
    
  • Se a instância do EC2 estiver em um VPC, a instância deverá estar em uma sub-rede que tenha um Gateway da Internet e uma rota padrão que flua pelo Gateway da Internet (esse deve ser o caso se você estiver usando o padrão VPC no Amazon EC2).

por 13.10.2014 / 09:15
1

O problema é que você não pode ser autenticado via ssh na sua instância do EC2. Conforme descrito na documentação , é necessário fornecer o caminho para sua chave privada, que corresponde à chave pública conhecida na sua conta do EC2. . Certifique-se de ter configurar corretamente os seus pares de chaves do EC2 .

    
por 12.10.2014 / 12:55
0

Se você estiver se conectando através de uma VPN e todo o seu tráfego (incluindo DNS) for encaminhado ao gateway da VPN, você não poderá se conectar através do IP público (que é o Vagrant tenta), mas poderá se conectar usando o nome DNS do terminal.

A AWS resolve um nome DNS para um IP público se você estiver consultando o DNS da Internet, mas resolve para o IP interno (172.xxx) se você estiver consultando de uma VPC.

Se você usar um servidor DNS não-AWS como resolvedor, ele sempre será resolvido para o IP público e você ficará parado, a menos que os grupos de segurança atribuídos à instância permitam acesso à porta 22 do mundo externo.

O Vagrant sempre tenta se conectar ao IP público, em vez do nome DNS.

Eu abri um problema sobre isso aqui: link

    
por 07.07.2015 / 09:05
0

Faça login em Amazon Web Services e verifique os seguintes itens:

  • Grupo de segurança para a sua instância está permitindo Inbound acesso SSH (verifique: ver regras ).
  • Para a instância do VPC, verifique sua tabela de rotas anexada, que deve ter 0.0.0.0/0 como Destino e seu Gateway de Internet como Destino.
  • Verifique duas vezes suas informações de rota no Registro do sistema em Rede da instância.

Para mais detalhes, verifique: Solução de problemas na conexão com sua instância

    
por 12.06.2016 / 17:04