Quebrei o SSH usando chmod em uma instância EC2 — Como faço para corrigir?

Quebrei o SSH usando chmod em uma instância EC2 — Como faço para corrigir?

Estou executando uma instância do Amazon EC2 há algum tempo e recentemente alterei acidentalmente as permissões/propriedade das pastas de forma recursiva. Não consigo mais usar SSH na instância. Não me lembro qual era o comando exato. Em seguida, recuperei o acesso básico usando a técnica fornecida na resposta a esta pergunta:https://serverfault.com/questions/234061/re-gaining-root-access-to-an-ec2-ebs-boot-image

No entanto, não sei o que fazer com a Etapa 3 ("Modifique."). Não sei o que modificar e, em minhas tentativas de definir as permissões corretas, também perdi o acesso a várias instâncias de recuperação do EC2!

Para referência, estou usando Win7 e Putty/WinSCP para conectar-me à instância. Putty exibe os 2 erros a seguir quando tento fazer logon na instância por meio de SSH:

Servidor recusou nossa chave

Nenhum método de autenticação compatível disponível (servidor enviado: chave pública)

Tenho certeza de que estou usando o nome de usuário, o endereço IP e a chave privada corretos para minha instância.

Qualquer ajuda seria muito apreciada.

Responder1

A solução,como a postagem de falha do servidor descreve, é montar seu EBS em outra (nova) instância à qual você possa se conectar. O EBS será apenas um drive ali, e você poderá se conectar remotamente à instância, já que ela é nova. Você pode então ver sudo chownos diretórios que quebrou em primeiro lugar.

  1. Pare (NÃO encerre) sua primeira instância do console AWS

  2. Crie uma nova instância Linux no console AWS

  3. Desconecte o EBS da primeira instância e anexe-o à nova instância novamentedo console AWS. Dê o nome: /dev/sdm (No console EBS, você verá que o volume anexado é denominado sdm, mas mapeado para xvdm no Linux, portanto, corresponde aos comandos abaixo. Mas fique à vontade para usar outra letra e ajustar o próximos comandos.)

  4. SSH para a nova instância e execute:

    sudo mkfs -t ext4 /dev/xvdm
    sudo mkdir /old-ebs
    # optional, in case this is a bit more permanent
    sudo echo "/dev/xvdm        /old-ebs     auto    noatime,noexec,nodiratime 0 0" >> /etc/fstab
    sudo mount /dev/xvdm /old-ebs
    
  5. Agora você tem acesso (sudo) ao seu EBS antigo e pode acessar chowno diretório que precisa. Uma dica aqui, caso você esteja perdido, seria copiar os direitos da nova instância.

  6. Quando terminar, você pode interromper a nova instância, desconectar seu EBS dela e reconectá-lo à primeira instância e, em seguida, iniciá-lo.

O terceiro comando do console acima, para adicionar o volume montado para /etc/fstabque ele seja montado automaticamente a cada reinicialização, é opcional.

informação relacionada