Descrição do problema
Ao tentar se conectar a uma instância Linux usando SSH, a conexão falha e exibe a mensagem Permission denied, please try again, mesmo com o nome de usuário e a senha corretos.
Diagnosticar o problema
-
Acesse uma instância ECS por meio de uma conexão VNC.
Acesse ECS console - Instances. No canto superior esquerdo, selecione a região e o grupo de recursos da instância de destino.
Acesse a página de detalhes da instância desejada. Clique em Connect e selecione VNC. Insira suas credenciais para fazer login na instância ECS.
-
Verifique a configuração do serviço SSH.
Se o parâmetro
PermitRootLoginouPasswordAuthenticationestiver definido comonona configuração, consulte Caso de uso 1: A configuração do SSH nega o login para resolver o problema.PermitRootLogin: Quando definido comono, este parâmetro impede o login do usuário root via SSH.PasswordAuthentication: Se configurado comono, este parâmetro impede o login de qualquer usuário com autenticação por senha.
sudo cat /etc/ssh/sshd_config -
Analise os logs de segurança do sistema.
Quando uma política do SELinux bloqueia uma tentativa de login, ela registra uma mensagem de erro no log de segurança do sistema.
Uma política do SELinux é um conjunto de regras de Controle de Acesso Obrigatório que define quais operações cada processo pode executar em arquivos, portas ou outros recursos.
# For CentOS/RHEL systems sudo grep -iE --color=auto 'Could not get shadow information' /var/log/secure # For Debian/Ubuntu systems sudo grep -iE --color=auto 'Could not get shadow information' /var/log/auth.logCaso o comando não retorne nenhuma saída, é provável que uma política do SELinux seja a causa. Consulte Caso de uso 2: Política do SELinux bloqueia o login.
Resolução
Caso de uso 1: A configuração do SSH nega o login
-
Modifique a configuração
sudo vi /etc/ssh/sshd_configAjuste os parâmetros conforme necessário:
Permitir autenticação por senha: Altere
PasswordAuthentication noparaPasswordAuthentication yes.-
Permitir login do usuário root:
Permitir autenticação por chave (Recomendado): Para usar um par de chaves no login do root, defina
PermitRootLogincomoprohibit-password.-
Permitir autenticação por senha: Altere
PermitRootLogin noparaPermitRootLogin yes.ImportantePermitir o login do root com senha (
PermitRootLogin yes) aumenta a exposição da instância a ataques de força bruta. Recomendamos o uso de autenticação por chave ou que você restrinja o acesso por endereço IP de origem.
Após modificar o arquivo, pressione
Esc, digite:wqe pressioneEnterpara salvar o arquivo e sair. -
Verifique a configuração e reinicie o serviço
-
Valide a sintaxe do arquivo de configuração. A ausência de saída indica que a sintaxe está correta.
sudo sshd -t -
Reinicie o serviço SSH para aplicar as alterações.
sudo systemctl restart sshd
-
-
Verifique a conexão
Conecte-se novamente à instância via SSH para confirmar que o problema foi resolvido.
Caso de uso 2: Política do SELinux bloqueia o login
-
Verifique o status atual do SELinux
Confirme se o SELinux está no modo
enforcing.sudo sestatusSe a saída mostrar
SELinux statuscomoenabledeCurrent modecomoenforcing, a política do SELinux está ativa. -
Altere temporariamente o modo do SELinux para restaurar o acesso
Mude temporariamente o SELinux para o modo
Permissive. Nesse modo, o SELinux registra avisos, mas não bloqueia operações.sudo setenforce 0ImportanteEssa alteração é temporária e será revertida quando a instância for reiniciada.
Após executar o comando, tente fazer login novamente via SSH. Um login bem-sucedido confirma que o SELinux causava o problema.
-
Modifique permanentemente a configuração do SELinux (Opcional)
-
Edite o arquivo de configuração. Altere o modo padrão do SELinux de
enforcingparapermissive.sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config Reinicie a instância para aplicar a alteração.
-
-
Verifique a conexão
Conecte-se novamente à instância via SSH para validar a conexão.