Posso fazer o SSH na minha instância do servidor Amazon EC2 se não tiver o arquivo .pem de quando a instância foi criada?

10

Estou trabalhando com alguns servidores Amazon EC2 em funcionamento e preciso fazer o SSH nos servidores. Eu não tenho nenhuma chave que foi gerada quando os servidores foram configurados (outra pessoa fez isso muito antes de eu chegar aqui). Ainda posso entrar nos servidores sem os arquivos principais?

FWIW Eu tentei muitas coisas no SSH até agora, incluindo a geração de novos pares de chaves no painel do EC2, e nada parece estar funcionando. Esta postagem de suporte do Amazon AWS e esta resposta parecem indicar que estou sem sorte, a menos que queira criar uma AMI do meu servidor atual e usá-la para instanciar uma instância do servidor EC2 totalmente nova (apenas para obter o arquivo .pem gerado naquela hora). É realmente a única maneira de entrar na caixa neste momento ?!

Eric
fonte

Respostas:

26

Em resumo: Sim, você pode, mas não sem algum trabalho.

Você precisará fazer o seguinte:

(Para essas etapas, suponha que a máquina à qual você está tendo problemas para se conectar se chama server-01.)

Primeiro, antes de iniciar essas etapas, tire uma foto do seu servidor.

  1. Inicie uma nova instância temporária. Chame de servidor-02.
  2. Pare o servidor-01. Não encerre, apenas pare.
  3. Desconecte o /volume EBS raiz ( ) do servidor-01 e anexe-o ao servidor-02 como, por exemplo /dev/sdb.
  4. Entre no servidor-02, e executar: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Isso montará a partição raiz do server-01 dentro do (temporário) server-02.
  5. Agora você deve ser capaz de: $ vi /home/<user>/.ssh/authorized_keyse copiar / colar na sua chave pública. Quando você fizer isso, salve e feche o arquivo.
  6. Agora execute: $ cd / && umount /mnt/temppara desmontar a partição raiz do server-01 do server-02.
  7. Agora, desanexe esse volume do servidor-02, anexe-o ao servidor-01 e inicie o servidor-01. Quando ele for iniciado, você poderá fazer o ssh novamente.
EEAA
fonte
2
Apenas para acrescentar a esta excelente resposta, encontrei este post do blog que faz isso na linha de comando. alestic.com/2011/02/ec2-fix-ebs-root
Eric
1

Apenas uma dica antes que alguém tente a resposta da EEAA ,

Se você não executou o comando iptables saveou iptables-savepara salvar suas configurações, basta reiniciar o servidor. Citando esta resposta no AskUbuntu , aprendi que iptablessalva suas configurações na própria RAM, a menos que você as salve explicitamente nos arquivos de configuração.

As instâncias do EC2 podem ser facilmente reinicializadas a partir do Painel do EC2 ou aws-cli

retr0
fonte
Umm, parece uma resposta para outra pergunta postada por engano aqui. Não há nada sobre firewall / iptables nesta questão.
Kubanczyk
Meu problema, esta resposta é para quando todo o tráfego é bloqueado para um servidor se todos os endereços IP estiverem bloqueados. Deixe-me saber se ele precisa ser retirado.
retr0 3/07/19