🔥 Erro Crítico no SSH: “Authentication Refused” Pode Estar a Bloquear o Acesso ao Seu Servidor! Saiba Resolver Já!

Está a tentar aceder ao seu servidor utilizando chaves SSH, mas é constantemente redirecionado para a autenticação por palavra-passe? Este problema é mais comum do que parece e pode ser identificado nos ficheiros de logs do sistema Linux ou Unix, como o /var/log/secure ou o /var/log/auth.log. Aqui está um exemplo de erro registado:

Bash
25 Fev 06:36:50 ns5 sshd[26681]: Authentication refused: bad ownership or modes for file /home/utilizador/.ssh/authorized_keys2

Outro exemplo que pode surgir no seu sistema:

Bash
24 Mai 18:28:35 servidor-1 sshd[531320]: Connection closed by 192.168.0.10 port 43640 [preauth]
24 Mai 18:28:44 servidor-1 sshd[531322]: Authentication refused: bad ownership or modes for file /home/admin/.ssh/authorized_keys
24 Mai 18:28:44 servidor-1 sshd[531322]: Connection closed by authenticating user admin 192.168.0.10 port 43650 [preauth]

Se está a enfrentar este pesadelo técnico, não se preocupe. Vamos guiá-lo para resolver este problema de permissões que está a impedir o funcionamento das suas chaves SSH. 💻✨


🔑 A Causa do Problema

O erro “Authentication refused: bad ownership or modes for file” ocorre quando as permissões ou a propriedade do ficheiro authorized_keys (ou diretórios relacionados) estão mal configuradas. A boa notícia é que pode corrigir isso rapidamente ajustando as permissões no seu servidor.


🚀 Como Identificar o Erro nos Logs

Para diagnosticar o problema, utilize os seguintes comandos no seu servidor:

Bash
# Logs de autenticação (Debian/Ubuntu)
tail -f /var/log/auth.log

# Logs de autenticação (RHEL/CentOS)
tail -f /var/log/secure

# Logs em sistemas com systemd
journalctl -f -u ssh.service
journalctl -f -u sshd.service

👉 Nota Importante: A partir da versão 3 do OpenSSH, o ficheiro authorized_keys2 foi descontinuado. Certifique-se de que está a utilizar o ficheiro correto, authorized_keys.


🔍 Diagnóstico de Permissões

Aceda ao servidor pelo modo de emergência (já que o SSH pode não funcionar). Depois, navegue para o diretório .ssh do utilizador:

Bash
cd ~/.ssh/

Liste as permissões do ficheiro authorized_keys:

Bash
ls -l authorized_keys

Exemplo de saída:

Bash
-rwxrwxrwx 1 admin admin 512 Mai 24 18:26 authorized_keys

Ou utilize o comando stat para obter mais detalhes:

Bash
stat authorized_keys

Exemplo de saída reformulada:

Bash
Ficheiro: authorized_keys  
Tamanho: 512        Blocos: 8          IO Block: 4096   ficheiro regular  
Dispositivo: 259,1	Inodo: 393225      Links: 1  
Acesso: 2024-05-24 18:26:52  
Modificação: 2024-05-24 18:26:52  
Alteração: 2024-05-24 18:27:54  

Certifique-se de que as permissões do ficheiro são exatamente 0600. Caso contrário, ajuste com o comando:

Bash
chmod 0600 ~/.ssh/authorized_keys

🛠️ Corrigir Permissões de Diretório

Além das permissões do ficheiro, o diretório .ssh e o diretório home do utilizador devem ter permissões corretas. Aqui está o que precisa de fazer:

  1. Verifique as permissões: ls -ld /home/admin/ /home/admin/.ssh/ Saída esperada: drwxr-xr-x 5 admin admin 4096 Mai 24 18:28 /home/admin/ drwx------ 2 admin admin 4096 Mai 24 18:29 /home/admin/.ssh/
  2. Caso as permissões estejam erradas, corrija-as: chmod 0700 /home/admin/.ssh/ chown -R admin:admin /home/admin

✨ Resolver o Erro de Ficheiro Ausente

Se o ficheiro authorized_keys estiver em falta, siga estes passos:

  1. Crie o diretório .ssh caso não exista: mkdir -p ~/.ssh/ chmod 700 ~/.ssh/ chown admin:admin ~/.ssh/
  2. Copie a chave pública para o servidor: ssh-copy-id -i ~/.ssh/sua-chave.pub admin@servidor1

🔒 Segurança Garantida!

Depois de realizar estas configurações, tente novamente o acesso SSH:

Bash
ssh admin@servidor1

Agora, deverá conseguir aceder ao servidor sem problemas! 🔐


💡 Conclusão

Ao ajustar as permissões corretamente, resolve-se o erro “SSH Authentication Refused: Bad Ownership Or Modes For File”. Certifique-se de manter as permissões do diretório e dos ficheiros sempre em conformidade para evitar problemas futuros.

Para mais dicas e guias detalhados sobre OpenSSH e Linux, explore os recursos oficiais:

Bash
man ssh  
man sshd  

🚀 Não deixe este problema atrasar o seu trabalho! Corrija-o já e proteja o acesso ao seu servidor como um profissional!

Artigos Relacionados