Amazon EC2 - Sem SSH após reinicialização, conexão recusada

17

Eu repliquei isso duas ou três vezes, então acho que há algo errado com o que estou fazendo.

Aqui estão os meus passos:

  1. Inicie uma nova instância via console de gerenciamento EC2 usando: Ubuntu Server 13.10 - ami-ace67f9c (64 bits)
  2. Iniciar com padrões (usando meu par de chaves existente)
  3. A instância inicia. Posso fazer o SSH usando o Putty ou o terminal Mac. Sucesso!
  4. Eu reinicio a instância
  5. 10 minutos depois, quando a instância deve voltar a funcionar, minha conexão de terminal mostra:

    stead:~ stead$ ssh -v -i Dropbox/SteadCloud3.pem [email protected]
    OpenSSH_5.6p1, Op`enSSL 0.9.8y 5 Feb 2013
    debug1: Reading configuration data /etc/ssh_config
    debug1: Applying options for *
    debug1: Connecting to 54.201.200.208 [54.201.200.208] port 22.
    debug1: connect to address 54.201.200.208 port 22: Connection refused
    ssh: connect to host 54.201.200.208 port 22: Connection refused
    stead:~ stead$
    

Tudo bem, entendo que o endereço IP público pode mudar, portanto, verificando o console de gerenciamento do EC2, verifico se é o mesmo. Esquisito. Apenas por diversão, tento conectar-me ao nome do host público do DNS: ec2-54-201-200-208.us-west-2.compute.amazonaws.com. Sem dados, mesmo resultado.

Mesmo usando o cliente Connect via Java SSH embutido no console do EC2, recebo a Conexão recusada.

Eu verifiquei os grupos de segurança. Esta instância está no grupo launch-wizard-4. Observando a configuração de entrada desse grupo, a Porta 22 é permitida a partir de 0.0.0.0/0, portanto, deve estar em qualquer lugar. Eu sei que estou atingindo minha instância e este é o grupo de segurança certo, porque não consigo executar ping na instância. Se eu ativar o ICMP para esse grupo de segurança, de repente meus pings passam.

Encontrei algumas outras postagens na Internet com mensagens de erro semelhantes, mas a maioria parece ser facilmente resolvida ajustando as configurações do firewall. Eu tentei alguns deles, sem sorte.

Eu estou supondo que há uma etapa simples do EC2 que estou faltando. Obrigado por qualquer ajuda que você possa dar, e estou feliz em fornecer mais informações ou testar mais!

Atualização - Aqui estão os logs do meu sistema no console do Amazon EC2: http://pastebin.com/4M5pwGRt

SteadH
fonte
2
Eu sugiro que consulte os logs do sistema no console da AWS para verificar se algo não correu bem durante a reinicialização. Você pode ter certeza de que ambas as verificações de acessibilidade passam quando o sistema é reiniciado e quando você está tentando ssh (no console somente)
APZ 18/01/14
2
Você não fez nada após a primeira conexão? Sem mexer com tabelas IP ou arquivos de configuração sshd? Porque parece que você está cortando a conexão, não que a porta 22 não esteja disponível.
typositoire
Você mexeu /etc/fstabantes de reiniciar?
David Levesque
Nenhuma alteração de iptables ou fstab antes da reinicialização. Primeiro comando Corri foi "reiniciar agora" Vou atualizar acima com meu AWS Sistema Logs
SteadH
Além disso, as verificações de status são boas - 2/2! Eu esperava que tivesse algo simples errado com minha configuração ... talvez não!
precisa

Respostas:

6

Hoje tive um comportamento semelhante na minha instância ec2, e rastreei o seguinte: quando eu faço sudo reboot now a máquina travar e preciso reiniciá-la manualmente a partir do console de gerenciamento do aws, quando faço sudo reboot isso, reinicia muito bem. Aparentemente, "agora" não é uma opção válida para reinicialização, como indicado aqui /ubuntu/397502/reboot-a-server-from-command-line

pensamentos?

oromoiluig
fonte
Impressionante! Eu tentei isso na minha instância hoje e funcionou. Obrigado!
SteadH
Além disso, esse link é engraçado porque eu sempre usei o sudo reboot agora como o método de reinicialização do Ubuntu Server. Estranho!
SteadH
@oromoiluig como se pode reiniciar, se não for possível ssh a máquina?
Vaibhav Kumar
11
@VaibhavKumar no console da AWS: desligue a instância e ligue-a novamente.
precisa saber é o seguinte
17

Na postagem do Fórum do desenvolvedor da AWS sobre este tópico :

Tente parar a instância quebrada, desconectando o volume EBS e anexando-o como volume secundário a outra instância. Depois de montar o volume quebrado em algum lugar da outra instância, verifique o arquivo / etc / sshd_config (próximo à parte inferior). Eu tive algumas instâncias do RHEL nas quais o Yum examinou o sshd_config, inserindo linhas duplicadas na parte inferior, que causaram a falha do sshd na inicialização devido a erros de sintaxe.

Depois de corrigi-lo, basta desmontar o volume, desconectar, reconectar à outra instância e acioná-lo novamente.

Vamos detalhar isso, com links para a documentação da AWS:

  1. Pare a instância quebrada e desanexe o volume EBS (raiz) acessando o EC2 Management Console, clicando em "Elastic Block Store"> "Volumes", clicando com o botão direito do mouse no volume associado à instância que você parou.
  2. Inicie uma nova instância na mesma região e no mesmo sistema operacional da instância quebrada e anexe o volume raiz do EBS original como um volume secundário à sua nova instância . Os comandos na etapa 4 abaixo pressupõem que você monta o volume em uma pasta chamada "dados".
  3. Depois de montar o volume quebrado em algum lugar da outra instância ,
  4. verifique o arquivo "/ etc / sshd_config" para obter as entradas duplicadas emitindo estes comandos:
    • cd /etc/ssh
    • sudo nano sshd_config
    • ctrl-v várias vezes para chegar ao final do arquivo
    • ctrl-k todas as linhas na parte inferior mencionando "PermitRootLogin sem senha" e "UseDNS no"
    • ctrl-xe Ypara salvar e sair do arquivo editado
  5. @Telegard ressalta (em seu comentário) que apenas corrigimos o sintoma. Podemos corrigir a causa comentando as três linhas relacionadas no arquivo "/etc/rc.local". Então:
    • cd /etc
    • sudo nano rc.local
    • procure as linhas "PermitRootLogin ..." e exclua-as
    • ctrl-xe Ypara salvar e sair do arquivo editado
  6. Depois de corrigi-lo, basta desmontar o volume ,
  7. desanexe indo ao EC2 Management Console, clicando em "Elastic Block Store"> "Volumes", o botão direito do mouse no volume associado à instância que você parou,
  8. reconecte à sua outra instância e
  9. dispare de novo .
Jeromy French
fonte
Esta pergunta também pode ser relevante: serverfault.com/q/325140/153062
Jeromy French
Mesmo problema e correção proposta semelhante em stackoverflow.com/a/21563478/1430996 O comentário é particularmente útil.
Jeromy French
Obrigado por isso! Eu suspeito que isso teria resolvido o problema, e essa é uma boa maneira de acessar esse log do SSH. Obrigado!
precisa saber é o seguinte
Isso funcionou, obrigado. Embora meu problema (mesmo sintoma: "conexão recusada") tenha sido causado por propriedade incorreta do diretório / var / empty / sshd. Deveria ter sido root: root. Por que isso mudou: não faço ideia, nunca chegamos perto disso. Ah bem.
Cucu8 12/0318
@JeromyFrench Eu tenho o mesmo problema. Eu segui o procedimento, mas não recebi o '"PermitRootLogin sem senha"'. Possui "PermitRootLogin = proibir-senha". O que devo fazer?
Vaibhav Kumar
0

Pode não ajudar a situação, mas já vi alguns casos em que uma reinicialização no EC2 fica 'travada'. Se você fizer uma 'redefinição' na VM e recuperar os logs do sistema, isso poderá alterar o comportamento. Verifique se os logs são da segunda inicialização e não da primeira - eles tendem a demorar nas atualizações.

Outra coisa a verificar é ter certeza de que a instância está respondendo no IP. Parece que você está recebendo uma conexão recusada acima, que parece que a instância está ativa, mas o SSH não está sendo executado ou está com firewall, mas verifique se a instância foi totalmente reiniciada.

Você também pode tentar abrir todas as portas de um sistema de teste e ver o que o 'nmap' mostra - outros serviços estão respondendo à instância.

Nathan Neulinger
fonte
-1

Clique com o botão direito do mouse no nome da instância e clique em "Alterar grupos de segurança". Verifique se o grupo de segurança que você criou, que permite que qualquer pessoa de qualquer lugar até a Porta 22, esteja marcado e aplicado a esta instância.

shaimoom
fonte
-2

Eu tenho esse problema depois de fazer sudo reboot nowvia SSH no meu servidor EC2 executando o Ubuntu 14.04. Funcionou bem após reiniciar novamente usando o EC2 Management Console.

Kris Khaira
fonte
-2

No meu caso, eu configuraria um grupo de segurança para permitir conexões da porta 22 apenas do meu IP. Alguns dias depois, meu ISP alterou meu endereço IP, portanto, o grupo de segurança precisa ser atualizado.

redcalx
fonte
-2

Eu tive um problema semelhante, minha instância do EC2 Amazon Linux não estava mais acessível após a execução da reinicialização do sudo .

Nenhum acesso SSH, comandos de parada / inicialização / reinicialização do console de administração da Amazon também não deram resultado.

Finalmente, consegui reiniciar minha instância criando uma imagem no console da Amazon. O processo de criação da imagem parece corrigir o estado da instância.

Espero que ajude ;)

Romain Pellerin-Rezzi
fonte
-2

Eu tive o mesmo problema depois de executar um sudo rebootcomando vanilla . Eu descobri que era capaz de resolver o problema parando completamente (não reinicializando) minha AMI usando o console da AWS e iniciando-o novamente.

Por qualquer motivo, reiniciar a AMI no console da AWS, como clicar na ação de reinicialização, em vez de parar e iniciar a instância, não resolveu o problema.

ACV
fonte
-3

Como mencionado, você provavelmente mexeu com o / etc / fstab /

Eu tive esse problema. Primeiro, você deve adicionar novamente o volume em / dev / sda1, como diz a mensagem de aviso.

Então eu não pude ssh. Percebi que tinha que adicionar o outro volume que criei e que corrigiu o problema do ssh.

Depois, você pode fazer o login e corrigir o fstab de volta ao original.

user3555158
fonte
Sem edição fsab, apenas um comando de reinicialização.
precisa saber é o seguinte