Redefinir a senha do servidor Linux EC2

Sep 11 2020

Não foi possível fazer login no servidor ubuntu EC2 devido a um problema de permissão.

Problema: Meu servidor EC2 ubuntu tem um usuário (root e ubuntu) e eu uso para fazer login no ubuntu usando ssh. Por engano, mudei a propriedade do diretório inicial do Ubuntu para root e também revoguei todas as permissões do diretório para outro usuário. Portanto, o diretório inicial do usuário (Ubuntu) tem apenas permissão RWX para root e mais ninguém. Agora não consigo fazer o login usando SSH para ubuntu. Forneci o arquivo .pem, mas desta vez estou recebendo uma solicitação de senha independentemente do arquivo .pem. Parece que errei.

O que eu tentei:

  1. Tentei fazer login como root usando ssh (não permitido)
  2. Tentei fazer o login no Ubuntu usando ssh (pedindo senha porque o problema de permissão eu acredito)
  3. Tentei hackear. Estava executando o Wordpress, então coloquei o shell sobre o servidor usando o Admin. Eu tenho shell reverso, mas não consigo fazer o escalonamento de privilégios para obter root.

Eu realmente aprecio se você puder me ajudar a entrar no meu servidor / redefinir a senha / forma de entrar no AWS Dashboard / ou qualquer outra forma.

Respostas

PhilipCouling Sep 11 2020 at 22:25

Ups!

Esse tipo de coisa acontece, mas é uma boa lição ter mais cuidado com seu acesso. Se você perdeu completamente o acesso, as opções abertas para você quase certamente envolverão o desligamento da VM ... Você não pode se recuperar disso com 100% de tempo de atividade.

Se fosse um PC local, você poderia retirar o disco rígido, colocá-lo em outra máquina e redefinir a senha na outra máquina. Mesmo sendo uma máquina virtual, o princípio é semelhante. Existe uma solução para um problema semelhante aqui:https://stackoverflow.com/a/11776183/453851

O princípio básico é que a máquina virtual EC2 usa "volumes" como discos rígidos. Por meio do console AWS, você pode:

  • desligue sua máquina virtual
  • desligue o volume
  • criar uma nova máquina virtual (com seu próprio volume)
  • inicialize a nova VM
  • anexar o volume antigo à nova VM (como um segundo volume)

Em seguida, faça login na nova VM e:

  • monte o volume antigo (para /mnt/)
  • chrootno sistema de arquivos montado ( chroot /mnt/ /bin/bash). Isso lhe dará uma linha de comando que se comporta como se estivesse executando dentro de sua VM antiga.
  • Altere qualquer senha que você quiser com passwd
  • desligar

Finalmente, de volta ao console da AWS:

  • retire o volume antigo
  • Reanexá-lo à VM antiga
  • inicialize a velha vm
  • exclua completamente a nova VM (TENHA CUIDADO PARA EXCLUIR A CERTA)