Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Por que recebo a mensagem de erro “Server refused our key” 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.
Resolução
O servidor SSH (sshd) pode recusar uma chave SSH privada por um dos seguintes motivos:
- Você usou o arquivo de chave privada incorreto ao se conectar à sua instância do Amazon EC2. Para solucionar esse erro, consulte Por que recebo os erros “imported-openssh-key” ou “PuTTY Fatal Error” quando me conecto à minha instância Linux do Amazon EC2?
- Alguém alterou as configurações do servidor SSH em /etc/ssh/sshd_config. Para solucionar esse erro, 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 (SO) não conseguiu montar diretórios pessoais /etc/fstab. Para solucionar esse problema, consulte Por que minha instância Linux do EC2 está entrando no modo de emergência quando tento inicializá-la?
- Você usou o nome de usuário incorreto para sua imagem de máquina da Amazon (AMI) quando se conectou à sua instância do Amazon EC2. 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.
- Alguém excluiu o usuário do servidor. Para solucionar esse problema, adicione o usuário de volta ao servidor como um novo usuário.
Você também poderá receber a mensagem de erro Server recused our key se sua instância tiver problemas de permissão ou não tiver um diretório. Para verificar as permissões e os diretórios da sua instância, use um dos métodos a seguir.
usar o Console de Série do EC2
Se você ativou o Console de Série do EC2 para Linux, poderá usar o console serial para solucionar problemas de tipos de instâncias compatíveis com base em Nitro.
Use o Systems Manager para fazer login na instância e verificar as permissões
Pré-requisito: Instale o AWS Systems Manager Agent (SSM Agent). Além disso, certifique-se de que sua configuração atenda aos pré-requisitos do Gerenciador de Sessões, um recurso do AWS Systems Manager.
Para usar o Gerenciador de Sessões para solucionar problemas da sua instância, conclua as seguintes etapas:
-
Abra o console do Systems Manager.
-
Para garantir que os arquivos no diretório inicial tenham as permissões corretas, execute o seguinte comando:
stat /home/ec2-user/ ls -ld /home # Should show drwxr-xr-x (755) ls -ld /home/ec2-user # Should show drwx------ (700) ls -ld /home/ec2-user/.ssh # Should show drwx------ (700) ls -l /home/ec2-user/.ssh/authorized_keys # Should show -rw------- (600)
Observação: substitua ec2-user pelo nome de usuário correto para sua AMI.
Na saída, verifique o Acesso para garantir que sua configuração use as seguintes permissões:
O diretório inicial do Linux /home deve ter permissões 0755/drwxr-xr-x.
O diretório inicial do usuário /home/ec2-user/ deve ter permissões 0700/drwx------.
A permissão do diretório /home/ec2-user/.ssh .ssh deve ter permissões 0700/drwx------.
A permissão de arquivo /home/ec2-user/.ssh/authorized_keys deve ter permissões 0600/-rw-------.
Exemplo de saída: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)
-
Para atualizar as permissões da sua configuração, 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
Observação: substitua ec2-user pelo nome de usuário correto para sua AMI.
Execute o runbook AWSSupport-TroubleshootSSH
Para corrigir automaticamente os problemas que causam erros, execute AWSSupport-TroubleshootSSH. O runbook instala a ferramenta Amazon EC2Rescue na instância e, em seguida, identifica e corrige problemas que causam erros de conexão remota durante o 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?
Usar dados do usuário para corrigir permissões na instância
Importante: antes de interromper e executar sua instância, execute as seguintes ações:
- Crie um backup do seu volume do Amazon Elastic Block Store (Amazon EBS).
Observação: se sua instância tiver suporte para armazenamento de instâncias ou tiver volumes de armazenamento de instâncias que contenham dados, o Amazon EC2 excluirá os dados quando você interrompe a instância. 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. - Remova temporariamente a instância do grupo do Amazon EC2 Auto Scaling ao concluir as etapas de resolução.
Observação: se você interromper uma instância que está em um grupo do EC2 Auto Scaling, poderá encerrar a instância com base nas configurações de proteção na redução de escala. As instâncias executadas com o Amazon EMR, o AWS CloudFormation ou o AWS Elastic Beanstalk podem fazer parte de um grupo do Auto Scaling. - Defina o comportamento de desligamento da instância como Interromper para garantir que as instâncias não sejam encerradas quando você as interrompe.
- Instale e configure o cloud-init. Para obter mais informações, consulte Configurar chaves SSH e SSH no site Cloud-init.
Importante: as atualizações dos dados de usuário da sua instância, afetam todas as distribuições que suportam comandos cloud-init.
Observação: quando você interrompe ou executa uma instância, o endereço IP público da instância muda. Ao rotear tráfego externo para sua instância, é uma prática recomendada usar um endereço IP elástico em vez de um endereço IP público. Se você usa o Amazon Route 53, talvez seja necessário atualizar os registros DNS do Route 53 quando o endereço IP público mudar.
Para usar os dados do usuário para corrigir problemas de permissões, conclua as seguintes etapas:
-
Abra o console do Amazon EC2.
-
No painel de navegação, escolha Instâncias e, em seguida, selecione sua instância.
-
Escolha Estado da instância e depois Interromper instância.
Observação: se você não conseguir escolher Interromper instância, a instância já está interrompida ou seu dispositivo raiz é um volume de armazenamento de instâncias. -
Escolha Ações e, em seguida, escolha Configurações da instância.
-
Escolha Editar dados do usuário e, em seguida, digite o seguinte comando:
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 --//
Observação: substitua ec2-user pelo nome de usuário correto para sua AMI. Não adicione espaços extras ao inserir o comando anterior.
-
Escolha Salvar.
-
Execute a instância e, em seguida, use SSH para conectar-se à instância.
Por padrão, o comando de dados do usuário é executado uma vez para cada instância. As etapas anteriores alteram o comportamento padrão para adicionar a chave pública em cada reinicialização, interrupção ou inicialização da instância. Para restaurar o comportamento padrão, remova os comandos personalizados de dados do usuário. É uma prática recomendada permitir que os dados do usuário sejam executados após a primeira inicialização da instância. É possível usar a API ModifyInstanceAttribute para modificar os dados do usuário de uma instância. Para restringir o acesso à API ModifyInstanceAttribute, use as políticas do AWS Identity and Access Management (AWS 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 meses
- feita há 2 meses
- feita há 5 meses
- feita há 19 dias