Resolución del Error de Autenticación SSH (Permission Denied)

Publicado el

Severidad: medium

El error 'Permission denied' al intentar conectarse por SSH indica que las credenciales no son válidas. Este artículo detalla sus causas, diagnóstico y soluciones prácticas.

Qué significa el error

El error de autenticación SSH "Permission denied" se produce cuando un cliente SSH no puede establecer una conexión con un servidor debido a problemas con las credenciales proporcionadas. Esto puede incluir un nombre de usuario incorrecto, una contraseña errónea o problemas con las claves SSH.

Causas comunes

  • Nombre de usuario incorrecto.
  • Contraseña incorrecta.
  • Clave SSH no autorizada.
  • Permisos incorrectos en los archivos de clave.
  • Configuración incorrecta del servidor SSH.
  • Uso de un puerto diferente al predeterminado.

Diagnóstico paso a paso

1. Comprobar el nombre de usuario

Asegúrate de que estás utilizando el nombre de usuario correcto. Puedes intentar conectarte usando el siguiente comando:
ssh usuario@direccion_ip

2. Verificar la contraseña

Si estás utilizando autenticación por contraseña, asegúrate de que la contraseña sea correcta. Si no estás seguro, intenta iniciar sesión en el servidor de otra manera.

3. Comprobar la clave SSH

Si utilizas autenticación basada en claves, verifica que la clave pública esté en el archivo `~/.ssh/authorized_keys` en el servidor. Puedes listar las claves autorizadas con:
cat ~/.ssh/authorized_keys

4. Revisar permisos de los archivos de clave

Asegúrate de que los permisos de los archivos de clave son correctos. Los permisos deben ser los siguientes:
  • La clave privada (`~/.ssh/id_rsa`): debe ser 600.
  • La carpeta `.ssh`: debe ser 700.
Puedes ajustar los permisos con:
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh

5. Comprobar la configuración del servidor SSH

Revisa el archivo de configuración del servidor SSH (`/etc/ssh/sshd_config`) para asegurarte de que no haya restricciones que impidan la conexión, como `AllowUsers` o `DenyUsers`.

Soluciones concretas

1. Corrigiendo el nombre de usuario

Asegúrate de que el comando SSH esté utilizando el nombre de usuario correcto:
ssh correcto_usuario@direccion_ip

2. Restablecer la contraseña

Si el problema radica en la contraseña, puedes restablecerla accediendo a la cuenta de usuario con privilegios y usando:
passwd usuario

3. Añadir la clave SSH al servidor

Si tu clave pública no está en `authorized_keys`, puedes añadirla utilizando:
cat ~/.ssh/id_rsa.pub | ssh usuario@direccion_ip 'cat >> ~/.ssh/authorized_keys'

4. Ajustar permisos de archivos

Revisa y corrige los permisos de los archivos de clave como se mencionó anteriormente.

5. Modificar la configuración del servidor

Si es necesario, edita el archivo de configuración del servidor para permitir el acceso adecuado:
sudo nano /etc/ssh/sshd_config

Después de realizar cambios, reinicia el servicio SSH:

sudo systemctl restart sshd

Consideraciones adicionales

  • Siempre realiza copias de seguridad de archivos de configuración antes de hacer modificaciones.
  • Considera el uso de un mecanismo de autenticación más seguro, como autenticación en dos pasos.
  • Mantén el software del servidor SSH actualizado para evitar vulnerabilidades de seguridad.
  • Revisa los registros del servidor SSH (`/var/log/auth.log` o `/var/log/secure`) para obtener más detalles sobre el error de autenticación.