Quero criar um usuário adicional que possa se conectar à minha instância Linux do Amazon Elastic Compute Cloud (Amazon EC2) com SSH.
Breve descrição
Inclua o comando de dados do usuário que realiza as seguintes tarefas:
- Cria um novo usuário.
- Concede permissões sudo ao usuário.
- Anexa a chave pública SSH ao arquivo authorized_keys.
Resolução
Importante: antes de alterar uma instância, revise o seguinte:
Conclua as etapas a seguir:
-
Faça login na instância com SSH ou Gerenciador de Sessões.
-
Execute o comando a seguir para confirmar se o cloud-init está instalado:
$ cloud-init -v
Se o comando retornar um erro, execute o seguinte comando para instalar uma instância na sua distribuição Linux:
Para instâncias baseadas em Debian
$ sudo apt-get install cloud-init
Para instâncias baseadas em RPM
sudo dnf install cloud-init
Para instâncias do Suse
zypper install cloud-init
-
Depois de confirmar a instalação do cloud-init, continue interrompendo a instância.
Observação: se a ação Parar não estiver disponível, significa que a instância já está parada ou seu dispositivo raiz é um volume de armazenamento de instância.
-
Gere a chave pública a partir da sua chave privada para se conectar ao novo usuário.
Observação: você deve ter um par de chaves ou uma chave privada para obter a chave pública. Para criar um par de chaves, consulte Criar um par de chaves para sua instância do Amazon EC2. Para segurança SSH, é uma prática recomendada criar pares de chaves por meio do console do EC2 ou de uma ferramenta de terceiros.
Para recuperar a chave pública, execute o comando a seguir. Se sua chave privada tiver uma frase secreta, digite-a quando solicitado.
$ ssh-keygen -f <private_key_file> -y
-
Insira sua chave pública no comando a seguir e atualize o campo de dados do usuário com este comando:
Selecione a instância.
No painel de navegação, escolha Ações e, em seguida, selecione Configurações da instância.
Escolha Editar dados do usuário e cole o script no campo.
Observação: substitua o username do espaço reservado pelo nome de usuário que você pretende usar. Para ssh-rsa AB3nzExample, insira sua chave pública. Se você usa uma Instância do Debian, altere o valor dos grupos de wheel para sudo:
#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
- name:username
groups: [ wheel ]
shell: /bin/bash
sudo: ["ALL=(ALL) NOPASSWD:ALL"]
ssh-authorized-keys:
- ssh-rsa AB3nzExample
O comando anterior cria um usuário com acesso irrestrito. Para bloquear o acesso sudo ao usuário, defina o valor de sudo como falso. Para obter mais informações, consulte Exemplos de configuração de nuvem no site cloud-init.
Observação: por padrão, as diretivas do cloud-init são executadas somente quando uma instância é iniciada. No entanto, quando você usa esse script de dados do usuário, o cloud-init adiciona a chave pública à instância toda vez que a instância é reinicializada ou reiniciada. Se você remover o script de dados do usuário, a funcionalidade padrão será restaurada.
-
Escolha Salvar.
-
Escolha Ações, selecione Estado da instância e escolha Iniciar.
-
Quando a instância atingir o estado de execução, faça login como o novo usuário. O novo usuário tem o mesmo comportamento padrão do ec2-user.
Observação: use a ação API ModifyInstanceAttribute para modificar os dados do usuário de uma instância. É possível criar uma política do AWS Identity and Access Management (AWS IAM) para restringir essa ação.
Informações relacionadas
Exibir o par de chaves
Como adiciono novas contas de usuário com acesso do SSH a instâncias do Linux do Amazon EC2?