Acesse a caixa EC2 Linux via ssh sem arquivo .pem

Você pode estar na situação em que precisa acessar sua instância EC2 de qualquer máquina, não necessariamente a sua. É uma pena carregar seu .pemarquivo e uma má ideia deixá-lo na máquina de outra pessoa também. Esta é uma solução para permitir que você faça login em sua instância com uma senha. Esteja ciente de que isso é menos seguro (obrigado por apontar isso) do que usar chaves, portanto, certifique-se de criar uma senha forte.

1. Faça login em sua instância EC2 usando seu .pemarquivo

ssh -i your_pem_file.pem ubuntu@ec2-________.compute-1.amazonaws.com

2. Crie um novo usuário que acessará a instância usando uma senha:

$ sudo useradd -s /bin/bash -m -d /home/USERNAME  -g root USERNAME

Onde:

  • -s /bin/bash: use /bin/bashcomo o shell padrão
  • -m -d /home/USERNAME : crie um diretório inicial em /home/USERNAME
  • -g root : adicionar ao grupo root
  • USERNAME : o nome de usuário do novo usuário

3. Crie uma senha forte para o novo usuário:

$ sudo passwd USERNAME
Enter new UNIX password:
Retype new UNIX password:

4. Adicione o usuário ao arquivo sudoers usando sudo visudoe adicione a seguinte linha:

USERNAME  ALL=(ALL:ALL) ALL

5. Habilite a autenticação de senha editando /etc/ssh/sshd_config: mude PasswordAuthentication noparaPasswordAuthentication yes

6. Reinicie o ssh:

sudo /etc/init.d/ssh restart

Saia da sua instância ( exit) e tente seu novo login sem o .pemarquivo:

$ ssh USERNAME@ec2-________.compute-1.amazonaws.com
USERNAME@ec2
-________.compute-1.amazonaws.com's password: