Erro SSH: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
Visão Geral do Erro
O erro “ssh connect Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)” é uma mensagem comum que pode ocorrer ao tentar se conectar a um servidor via SSH. Essa mensagem indica que o cliente SSH não conseguiu autenticar com sucesso, resultando na recusa de acesso. Isso pode ser causado por uma variedade de fatores, incluindo configurações inadequadas de chave pública, permissões inadequadas no servidor ou problemas de configuração no cliente.
Neste artigo, vamos explorar as causas comuns desse erro e apresentar métodos de solução que podem ajudar a resolver o problema.
Causas Comuns
Existem várias razões pelas quais você pode encontrar o erro “ssh connect Permission denied”:
-
Chave pública não adicionada ao servidor: A chave pública do seu cliente SSH pode não estar registrada no arquivo
authorized_keysdo servidor. -
Permissões inadequadas: As permissões do diretório
.sshou do arquivoauthorized_keyspodem estar configuradas incorretamente, impedindo a autenticação. - Chave privada não carregada: A chave privada correspondente à chave pública pode não estar carregada no agente SSH.
- Configuração do cliente SSH: O cliente SSH pode não estar configurado corretamente para usar a chave privada correta.
- Autenticação por senha: Se você estiver tentando usar a autenticação por senha e não estiver habilitada, a conexão será negada.
- Problemas de rede: Problemas de conectividade de rede ou firewall também podem causar falhas na autenticação.
Métodos de Solução
Método 1: Verificar as Chaves SSH
- Verifique se a chave pública está no servidor:
- Conecte-se ao servidor e execute:
bash
cat ~/.ssh/authorized_keys - Certifique-se de que a chave pública do seu cliente SSH está listada. Se não estiver, adicione-a.
- Adicione a chave pública:
- No seu cliente, gere uma nova chave SSH (se necessário):
bash
ssh-keygen -t rsa - Copie a chave pública para o servidor:
bash
ssh-copy-id user@servidor
Método 2: Configurar Permissões Corretas
- Verifique as permissões do diretório
.ssh: -
No servidor, execute:
bash
chmod 700 ~/.ssh -
Verifique as permissões do arquivo
authorized_keys: -
No servidor, execute:
bash
chmod 600 ~/.ssh/authorized_keys - Verifique as permissões do arquivo da chave privada no cliente:
- Execute:
bash
chmod 600 ~/.ssh/id_rsa
Método 3: Carregar a Chave Privada
- Verifique se a chave está carregada:
- Execute no cliente:
bash
ssh-add -l -
Se a chave não estiver listada, adicione-a:
bash
ssh-add ~/.ssh/id_rsa -
Se você não tiver o
ssh-agentem execução, inicie-o: - Execute:
bash
eval $(ssh-agent)
Método 4: Configurar o Arquivo ansible.cfg
- Crie ou edite o arquivo
ansible.cfgno diretório do seu playbook: -
Adicione a seguinte linha para definir a chave privada globalmente:
ini
[defaults]
private_key_file = /home/username/.ssh/id_rsa -
Execute o playbook com a chave privada especificada:
bash
ansible-playbook -vvvv --private-key=/home/username/.ssh/id_rsa playbookname.yml
Método 5: Aumentar a Verbosidade para Diagnóstico
- Execute o comando com mais verbosidade:
bash
ansible-playbook --user=djuarezg -vvv ansible-playbook-test.yml - Isso fornecerá mais informações sobre o que pode estar dando errado.
- Verifique os argumentos SSH na saída e ajuste conforme necessário.
Dicas de Prevenção
- Mantenha suas chaves SSH seguras e faça backup delas.
- Verifique regularmente as permissões dos arquivos e diretórios SSH.
- Use autenticação de chave ao invés de senha sempre que possível, pois é mais segura.
- Mantenha seu software atualizado, incluindo o cliente SSH e o servidor.
Resumo
O erro “ssh connect Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)” pode ser frustrante, mas geralmente é causado por uma configuração inadequada de chaves ou permissões. Seguindo os métodos de solução descritos acima, você pode resolver esse problema e garantir uma conexão SSH bem-sucedida. Lembre-se de verificar sempre as permissões e a configuração do seu ambiente de SSH para evitar esse erro no futuro.

コメント