Por que recebo o erro “O servidor recusou nossa chave” quando tento me conectar à minha instância do EC2 por meio de SSH?
Eu recebo o erro “O servidor recusou nossa chave” quando me conecto à minha instância do Amazon Elastic Compute Cloud (Amazon EC2) por meio de SSH.
Breve descrição
Há vários motivos pelos quais um servidor SSH (sshd) recusa uma chave SSH privada. Confira a seguir alguns motivos comuns pelos quais é possível receber esse erro:
- Você usa o arquivo de chave privada incorreto ao tentar se conectar à sua instância do Amazon EC2. Para obter mais informações, consulte Por que recebo os erros “imported-openssh-key” ou “PuTTY Fatal Error” quando me conecto à minha instância Linux do Amazon EC2?
- As configurações do servidor SSH em /etc/ssh/sshd_config foram alteradas. Para obter mais informações, consulte Como uso o SSH para acessar minha instância do EC2 depois de alterar o arquivo sshd_config da instância?
- O sistema operacional não conseguiu montar diretórios pessoais (/etc/fstab). Para obter mais informações, consulte Por que minha instância Linux do EC2 está entrando no modo de emergência quando tento inicializá-la?
Resolução
Você usa o nome de usuário incorreto para sua AMI ao tentar se conectar à sua instância do Amazon EC2
Os nomes de usuário usuais são ec2-user, ubuntu, centos, root ou admin. Para obter uma lista de nomes de usuário válidos, consulte Erro: O servidor recusou nossa chave ou Não há métodos de autenticação compatíveis.
O usuário foi excluído do servidor ou a conta da AWS foi bloqueada
Se o usuário que tentar acessar a instância for excluído do servidor, adicione-o novamente como um novo usuário. Para obter mais informações, consulte Como adiciono novas contas de usuário com acesso do SSH a instâncias do Amazon EC2 do Linux?
Há problemas de permissão na instância, ou você não tem um diretório
Há quatro métodos para verificar permissões e diretórios na instância:
Método 1: usar o console de série do EC2
Se você ativou o console de série do Amazon EC2 para Linux, poderá usá-lo para solucionar problemas de tipos de instâncias compatíveis com base em Nitro. É possível acessar o console de série por meio do console do Amazon EC2 ou da AWS Command Line Interface (AWS CLI). Para obter mais informações, consulte Configurar o acesso ao Console de Série do EC2.
Método 2: Usar o Gerenciador de Sessões do AWS Systems Manager para fazer login na instância e verificar as permissões
Observação: A instalação do SSM Agent é necessária para usar esse método. Para obter mais informações sobre o Session Manager e uma lista completa de pré-requisitos, consulte Configurar o Session Manager.
-
Abra o console do AWS Systems Manager.
-
Use o comando stat para garantir que as permissões dos arquivos no diretório home estejam corretas. Veja a seguir uma lista das permissões corretas:
Diretório inicial do Linux, /home, (0755/drwxr-xr-x).
Diretório inicial do usuário, /home/ec2-user/, (0700/drwx------).
Permissão de diretório.ssh, /home/ec2-user/.ssh, (0700/drwx------).
Permissão de arquivo authorized_keys, /home/ec2-user/.ssh/authorized_keys, (0600/-rw-------).
Veja a seguir um exemplo do comando stat e da saída. Neste exemplo, ec2-user é o nome do usuário. Altere o nome de usuário para sua AMI específica:$ stat /home/ec2-user/ File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user)
-
Se as permissões não corresponderem aos valores anteriores, execute os seguintes comandos:
$ sudo chown root:root /home$ sudo chmod 755 /home $ sudo chown ec2-user:ec2-user /home/ec2-user -R $ sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh $ sudo chmod 600 /home/ec2-user/.ssh/authorized_keys
-
SSH para sua instância.
Método 3: Para corrigir automaticamente os problemas que causam o erro, execute o documento AWSSupport-TroubleshootSSH document
O documento de automação AWSSupport-TroubleshootSSH instala a ferramenta Amazon EC2Rescue na instância. Em seguida, o documento de automação verifica e corrige problemas que causam erros de conexão remota durante a conexão de uma máquina Linux por meio de SSH. Para obter mais informações, consulte Estou recebendo erros ao tentar me conectar à minha instância do EC2 usando SSH. Como posso usar o fluxo de trabalho de automação AWSSupport-TroubleshootSSH para solucionar problemas de conexão SSH?
Método 4: Usar dados do usuário para corrigir permissões na instância
Importante:
- Esse procedimento de recuperação exige que você pare e inicie sua instância. Quando você faz isso, os dados nos volumes de armazenamento de instância são perdidos. Para obter mais informações, consulte Volumes raiz para suas instâncias do Amazon EC2.
- Se sua instância fizer parte de um grupo do Amazon EC2 Auto Scaling, a instância poderá ser encerrada quando for interrompida. Isso também pode ocorrer em instâncias lançadas por serviços que usam o AWS Auto Scaling, como o Amazon EMR, o AWS CloudFormation ou o AWS Elastic Beanstalk. O fim da instância nesse cenário depende das configurações de proteção contra redução de instâncias para seu grupo do Auto Scaling. Se sua instância fizer parte de um grupo do Auto Scaling, remova a instância do grupo do Auto Scaling antes de iniciar as etapas de resolução. É possível adicionar a instância de volta ao grupo do Auto Scaling depois de concluir as etapas de resolução.
- A interrupção e reinicialização da instância altera o endereço IP público da sua instância. Ao rotear tráfego externo para sua instância, é prática recomendada usar um endereço IP elástico em vez de um endereço IP público.
- Não é possível alterar a chave SSH usando dados do usuário se o dispositivo raiz da instância for um volume de armazenamento de instância. Para obter mais informações, consulte Volumes raiz para suas instâncias do Amazon EC2.
- As atualizações dos dados de usuário da sua instância se aplicam a todas as distribuições que oferecem suporte às diretivas cloud-init. O Cloud-init deve ser instalado e configurado. Para obter mais informações, consulte SSH - Configurar chaves SSH e SSH no site Cloud-init.
Conclua as seguintes etapas:
-
Abra o console do Amazon EC2 e escolha sua instância.
-
Escolha Estado da instância e depois Parar instância.
Observação: se a opçã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. -
Escolha Ações, escolha Configurações da instância e escolha Editar dados do usuário.
-
Copie o comando a seguir no campo Dados do usuário e selecione Salvar. Certifique-se de copiar todo o comando e não adicionar espaços extras.
Observação: o comando a seguir usa o nome de usuário ec2-user. Altere ec2-user para o nome de usuário da sua AMI.Content-Type: multipart/mixed; boundary="//"MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config cloud_final_modules: - [scripts-user, always] --//Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//
-
Inicie a instância e, em seguida, use SSH para conectar-se à instância.
Observação: por padrão, o comando de dados do usuário é executado uma vez por instância. Esse procedimento altera o comportamento padrão para adicionar a chave pública a cada reinicialização, parada ou início da instância. Para restaurar o comportamento padrão, remova os dados personalizados do usuário. É uma prática recomendada seguir os protocolos de segurança e permitir que os dados do usuário sejam executados após a primeira inicialização de uma instância. É possível modificar os dados do usuário de uma instância com o método da API ModifyInstanceAttribute. Para restringir o acesso a esse método, use políticas do IAM.
Informações relacionadas
Conecte-se à sua instância Linux usando PuTTY
Pares de chaves do Amazon EC2 e instâncias do Amazon EC2
Como posso solucionar problemas de conexão com minha instância Linux do Amazon EC2 usando SSH?
Vídeos relacionados


Conteúdo relevante
- feita há 3 meseslg...
- feita há 2 meseslg...
- feita há um mêslg...
- feita há 7 diaslg...
- AWS OFICIALAtualizada há 5 meses