Possíveis razões para o tempo limite ao tentar acessar a instância EC2

102

Não consigo fazer SSH em minha instância - A operação expirou. Quais podem ser os motivos e o que posso fazer para resolver o problema? A reinicialização normalmente leva muito tempo para fazer efeito e pode apenas piorar as coisas

ATUALIZAÇÃO: Não se trata de permissões - posso fazer login normalmente sem problemas. Eu suspeito que pode ser por causa de problemas de memória

ming yow
fonte
3
Você deve tentar serverfault.com, pois esta não é realmente uma questão de programação.
rwilliams de
Firewall? SSH ouvindo nessa porta?
Pôneis OMG
1
O problema persiste se você iniciar outra instância? (Também pode ajudar saber mais sobre sua configuração.) Atualizei minha resposta.
Jonik
execute ping no DNS primeiro. Se falhar, configure suas regras de entrada / saída no assistente de inicialização. configurar TODO o tráfego e TODO o protocolo e apenas salvar com as opções padrão. Faça ping novamente com seu sistema local e deve funcionar.
Maiden

Respostas:

67

Você definiu um grupo de segurança apropriado para a instância? Ou seja, aquele que permite o acesso de sua rede à porta 22 na instância. (Por padrão, todo o tráfego não é permitido.)

Atualização: Ok, não é um problema de grupo de segurança. Mas o problema persiste se você iniciar outra instância da mesma AMI e tentar acessá-la? Talvez essa instância específica do EC2 tenha falhado aleatoriamente de alguma forma - é apenas uma questão de tempo que algo assim aconteça. (Leitura recomendada: Architecting for the Cloud: Best Practices (PDF), um artigo de Jinesh Varia, que é um evangelista de serviços da Web na Amazon. Consulte especialmente a seção intitulada "Projete para falhar e nada falhará".)

Jonik
fonte
Aqui está a mesma coisa no FAQ do EC2: developer.amazonwebservices.com/connect/… (Além disso ec2-authorize, você pode usar a extensão Elasticfox Firefox para configurar facilmente os grupos.)
Jonik
1
Meu Deus ... abrir a porta SSH no grupo é tão básico, não acredito que não está aqui: alestic.com/2009/08/ec2-connectivity . Obrigado por apontar isso.
mtyson
oh, esqueci-me completamente do grupo de segurança! Obrigado!
Antonio Beno
91

Tive o mesmo problema, e a solução acabou sendo adicionar o IP da minha máquina local à lista de regras de entrada no grupo de segurança ativo. Na caixa de diálogo de entrada abaixo, insira 22 no intervalo de portas, seu IP / 32 local no campo de origem e deixe 'regra tcp personalizada' no menu suspenso.

insira a descrição da imagem aqui

ted.strauss
fonte
6
Depois de pressionar o botão 'adicionar regra', você também precisa clicar em 'aplicar alteração de regra' para que tenha efeito. Não se esqueça disso. Isso me confundiu algumas vezes.
ted.strauss
Muito obrigado por isso!
Hego555 de
Resposta perfeita! Não tenho mais medo de ser hackeado: D
softvar
2
isso funcionou para mim, obrigado !! Por algum motivo ... meu endereço IP mudou e, de repente, não consegui fazer o ssh na minha instância ec2. Acabei de adicionar uma regra e em vez de colocar um endereço IP "personalizado", apenas selecionei 'meu IP' e wala ... Consegui fazer o ssh!
rikkitikkitumbo
Boa resposta! Também achei esta solução de problemas da AWS muito útil e ela contém o ponto sugerido aqui acima.
J0ANMM
28

Destrua e crie de novo

Tive uma zona de disponibilidade onde poderia conectar e outra onde não poderia. Depois de algumas horas, fiquei tão frustrado que apaguei tudo naquela zona de disponibilidade.

Construindo tudo de volta eu tive que ter certeza de criar TUDO. Isso incluiu:

  • Criar VPC
    • CIDR: 10.0.0.0/24
  • Criar gateway de Internet
  • Anexe o gateway da Internet ao VPC
  • Criar Tabela de Roteamento
  • Adicionar rota à tabela de roteamento
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • Criar sub-rede
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

Levei muito esforço para conseguir tudo isso. Ordenei as etapas da maneira que considero mais eficiente, mas você pode ter que ajustá-los para ter um item disponível para o próximo.

Sugestão

Não estou sugerindo que você se torne termo nuclear como eu. Estou oferecendo todas essas informações para que você possa verificar essas associações e garantir que as suas são adequadas.

Bruno Bronosky
fonte
6
Isso realmente me ajudou! Tive um caso em que minha tabela de roteamento não estava apontada para um gateway de Internet e esse era o único problema.
EdgeCaseBerg
Honestamente, eu documento essas coisas no SO e no github / gists porque sei que vou me chutar quando precisar fazer isso novamente em 2 meses. Espero que ajude outras pessoas também. Mas, no final das contas, sou apenas um desastre egoísta. Obrigado por comentar, @EdgeCaseBerg.
Bruno Bronosky
2
Obrigado a TON @BrunoBronosky. Exatamente, se esse "gateway de Internet" é realmente necessário, então por que a documentação padrão da AWS não menciona isso? :(
Anand
1
@BrunoBronosky obrigado! Isso é exatamente o que estava me impedindo de me conectar à instância. Vou guardar essas etapas para o meu futuro.
saiyancoder
21

Esta resposta é para pessoas tolas (como eu). O DNS público do seu EC2 pode (irá) mudar quando for reiniciado. Se você não perceber isso e tentar fazer o SSH em seu DNS público antigo, a conexão irá travar e expirar. Isso pode levar você a supor que algo está errado com seu EC2 ou grupo de segurança ou ... Não, apenas SSH no novo DNS. E atualize seu ~/.ssh/configarquivo se for necessário!

dslosky
fonte
Uma hora solucionando meus problemas de tempo limite e esta foi a solução. Obrigado :)
Eric D. Brown
2
Muito obrigado @dslosky você salvou minha vida. :)
A_01
13

Para conectar, use ssh assim:

ssh -i keyname.pem [email protected]

Onde keyname.pemestá o nome de sua chave privada, usernameé o nome de usuário correto para sua distribuição de sistema operacional e xxx.xx.xxx.xxé o endereço IP público.

Quando atingir o tempo limite ou falhar, verifique o seguinte:

Grupo de Segurança

Certifique-se de ter uma regra de entrada para a porta 22 tcp e todos os ips ou seu ip. Você pode encontrar o grupo de segurança através do menu ec2, nas opções da instância.

Tabela de roteamento

Para uma nova sub-rede em um vpc, você precisa mudar para uma tabela de roteamento que aponta 0.0.0.0/0 para o destino do gateway da Internet . Quando você cria a sub-rede em seu vpc, por padrão, ele atribui a tabela de roteamento padrão, que provavelmente não aceita tráfego de entrada da Internet. Você pode editar as opções da tabela de roteamento no menu vpc e, em seguida, nas sub-redes.

Elastic IP

Para uma instância em um vpc, você precisa atribuir um endereço IP elástico público e associá-lo à instância. O endereço IP privado não pode ser acessado de fora. Você pode obter um ip elástico no menu ec2 (não no menu de instância).

Nome do usuário

Certifique-se de usar o nome de usuário correto . Deve ser um ec2-userou rootou ubuntu. Experimente todos eles, se necessário.

Chave privada

Certifique-se de usar a chave privada correta (aquela que você baixou ou escolheu ao iniciar a instância). Parece óbvio, mas copiar e colar me pegou duas vezes.

AJcodez
fonte
1
Obrigado por isso, sempre esqueço de adicionar o 0.0.0.0/0 ao destino do gateway de Internet quando crio um novo VPC
Chathushka
7

Você já olhou para a saída do console da instância? Você pode fazer isso por meio do console da AWS (Instâncias -> Clique com o botão direito na instância -> Obter Log do Sistema). Já tive ocasiões em que os serviços de rede em uma instância EC2 falharam ao iniciar corretamente, resultando em conexões SSH expiradas; reiniciar a instância geralmente corrige as coisas.

gareth_bowles
fonte
3

insira a descrição da imagem aqui

APÓS 2 HORAS ACHEI ESTE

Observe que ssh ip 120.138.105.251/32

  • NÃO É ENDEREÇO ​​IP da instância aws

  • Não é o seu ip local 127.0.0.1

  • Não é o seu ip local localhost

MAS MAS MAS

Sua seu endereço IP público de seu computador pessoal a partir do qual você está tentando instância AWS acesso

  1. Vá para https://www.whatismyip.com/ qualquer endereço IP colocado em ssh

SE VOCÊ DESEJA ABRIR TOTALMENTE O SSH PARA TODOS OS ENDEREÇOS IP insira a descrição da imagem aqui

É ASSIM COMO AS ENTRADAS TOTALMENTE ACESSÍVEIS - BÁSICO RECOMEÇADO insira a descrição da imagem aqui

ISSO É O QUE ESTOU USANDO NA PRODUÇÃO insira a descrição da imagem aqui

vijay
fonte
2

Os seguintes são possíveis problemas:

  • O mais provável é que o grupo de segurança não está configurado corretamente para fornecer acesso SSH na porta 22 para o seu ip A mudança na configuração de segurança não requer a reinicialização do servidor para que seja eficaz, mas é necessário aguardar alguns minutos para que seja aplicável.

  • A configuração do firewall local não permite acesso SSH ao servidor. (você pode tentar uma conexão de internet diferente, seu telefone / dongle para tentar)

  • O servidor não foi inicializado corretamente (então as verificações de acesso falharão mesmo no console amazon), neste caso você precisaria parar e iniciar o servidor.

pradosh nair
fonte
No meu caso, foi um problema de firewall na rede em que trabalho. Usar uma VPN para circunavegar funcionou.
MDave
1

Confira esta página de ajuda nos documentos da AWS:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TrouwagenInstancesConnecting.html#Trou troubleshootingInstancesConnectionTimeout Provavelmente encontrará sua solução lá. para mim, essa parte resolveu:

[EC2-VPC] Verifique a tabela de rotas para a sub-rede. Você precisa de uma rota que envie todo o tráfego destinado fora do VPC para o gateway da Internet para o VPC.

  • Abra o console do Amazon VPC em https://console.aws.amazon.com/vpc/ .

  • No painel de navegação, escolha Gateways da Internet. Verifique se há um gateway de Internet conectado ao seu VPC. Caso contrário, escolha Criar gateway da Internet e siga as instruções para criar um gateway da Internet, selecione o gateway da Internet e, em seguida, escolha Anexar ao VPC e siga as instruções para anexá-lo ao VPC.

  • No painel de navegação, escolha Sub-redes e selecione sua sub-rede.

  • Na guia Tabela de rotas, verifique se há uma rota com 0.0.0.0/0 como destino e o gateway da Internet para seu VPC como destino. Caso contrário, escolha o ID da tabela de rota (rtb-xxxxxxxx) para navegar até a guia Rotas da tabela de rota, escolha Editar, Adicionar outra rota, insira 0.0.0.0/0 em Destino, selecione seu gateway de Internet em Destino e, em seguida escolha Salvar.

Mas eu sugiro que você verifique todas as opções que o link acima cobre, você pode encontrar lá um ou mais problemas que você encontrou.

Meltzer
fonte
1

Meu problema - abri a porta 22 para "Meu IP" e alterei a conexão com a Internet e a mudança de endereço IP causada. Então tive que mudar de volta.

smDev
fonte
1

Construindo a @ted.straussresposta de, você pode selecionar SSHe MyIPno menu suspenso em vez de navegar para um site de terceiros.

Adam J. Gramling
fonte
1

Basta reiniciar a instância Ec2 depois de aplicar as regras

Shaz
fonte
1

Permita o ssh e a porta 22 do ufw, então habilite-o e verifique com o comando status

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status
Jagannath Swarnkar
fonte
0

Mais uma possibilidade. Os grupos de segurança da AWS são configurados para funcionar apenas com endereços IP de entrada específicos. Se o seu grupo de segurança for configurado dessa forma, você (ou o titular da conta) precisará adicionar seu endereço IP ao grupo de segurança. Para fazer isso, abra seu painel AWS, selecione grupos de segurança, selecione um grupo de segurança e clique na guia de entrada. Em seguida, adicione seu ip conforme apropriado.

LA Ferguson
fonte
0

Eu tive o mesmo problema e a solução foi permitir o acesso de qualquer lugar à lista de regras de entrada no grupo de segurança ativo. Na caixa de diálogo de entrada, digite 22 no intervalo de portas, em qualquer lugar no campo de origem, e selecione 'ssh' no menu suspenso.

PS: Essa pode não ser a solução recomendada, pois significa que esta instância pode ser ssh'ed de qualquer máquina, mas não consegui fazê-la funcionar com meu IP local.

Yahya
fonte
0

Tive problema parecido, quando estava usando Wifi público, que não tinha senha. Mudar a conexão com a Internet para uma conexão segura resolveu o problema.

Bharath Ram
fonte
0

Se o acesso SSH não funcionar para sua instância EC2, você precisa verificar:

  • O grupo de segurança da sua instância está permitindo o acesso SSH de entrada (verifique: ver regras ).

Se você estiver usando uma instância VPC (você tem o ID de VPC e o ID de sub - rede anexados à sua instância), verifique:

  1. No painel VPC, encontre o ID de sub-rede usado que está anexado ao seu VPC.
  2. Verifique sua tabela de rotas anexada que deve ter 0.0.0.0/0como destino e seu gateway de Internet como destino.

No Linux, você também pode verificar as informações de rota no registro do sistema em rede da instância, por exemplo:

++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device |  Up  |           Address            |      Mask     | Scope |     Hw-Address    |
+--------+------+------------------------------+---------------+-------+-------------------+
|   lo   | True |          127.0.0.1           |   255.0.0.0   |   .   |         .         |
|  eth0  | True |         172.30.2.226         | 255.255.255.0 |   .   | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination |  Gateway   |    Genmask    | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
|   0   |   0.0.0.0   | 172.30.2.1 |    0.0.0.0    |    eth0   |   UG  |
|   1   |   10.0.3.0  |  0.0.0.0   | 255.255.255.0 |   lxcbr0  |   U   |
|   2   |  172.30.2.0 |  0.0.0.0   | 255.255.255.0 |    eth0   |   U   |
+-------+-------------+------------+---------------+-----------+-------+

onde UGsinalizadores mostrando seu gateway de internet.

Para obter mais detalhes, consulte: Solução de problemas de conexão com sua instância na Amazon docs.

Kenorb
fonte
0

Para habilitar o acesso ssh da Internet para instâncias em uma sub-rede VPC, faça o seguinte:

  • Conecte um gateway de Internet ao seu VPC.
  • Certifique-se de que a tabela de rotas da sua sub-rede aponta para o gateway da Internet.
  • Certifique-se de que as instâncias em sua sub-rede tenham um endereço IP globalmente exclusivo (endereço IPv4 público, endereço Elastic IP ou endereço IPv6).
  • Certifique-se de que o controle de acesso à rede (no nível VPC) e as regras do grupo de segurança (no nível ec2) permitem que o tráfego relevante flua de e para sua instância. Certifique-se de que o endereço IP público da sua rede esteja habilitado para ambos. Por padrão, Network AcL permite todo o tráfego de entrada e saída, exceto explicitamente configurado de outra forma
Innocent Anigbo
fonte
0

Para mim, foi o servidor apache hospedado em uma instância t2.micro linux EC2, não a própria instância EC2.

Eu consertei fazendo:

sudo su

service httpd restart

Gus
fonte
0

Eu tive o mesmo problema e resolvi adicionando uma regra aos grupos de segurança

SSH de entrada 0.0.0.0/0

Ou você pode adicionar apenas o seu endereço IP

Majali
fonte
0

Para mim, foi porque eu havia excluído tudo do volume de inicialização. E não conseguia mais se conectar à instância.

t_sologub
fonte
0

Eu estava trabalhando na instância e estava tudo bem, no dia seguinte, quando tentei fazer o SSH em minha instância, ele disse - Tempo limite de conexão.

Tentei ler este post, mas nada funcionou. Então eu fiz -

Na Edit inbound rulescoluna from source, escolha MY IPe preencherá automaticamente seu endereço IP público no formato CIDR ( XXX.XXX.XXX.XX/32).

Tentei com a resposta @ ted.strauss fornecendo o IP local, mas não ajudou no meu caso. Então eu escolhi MEU IP e funcionou.

Espero que isso ajude alguém!

rbashish
fonte
0

execute ping no DNS primeiro. Se falhar, configure suas regras de entrada / saída no assistente de inicialização. configurar TODO o tráfego e TODO o protocolo e apenas salvar com as opções padrão. Faça ping novamente com seu sistema local e deve funcionar

Donzela
fonte
0

Se você acabou de criar uma nova instância e não consegue se conectar a ela, consegui resolver o problema encerrando essa instância e criando uma nova. É claro que isso só funcionará se for uma nova instância e você não tiver feito mais nenhum trabalho nela.

José Del Valle
fonte