Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux Paso a Paso

Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux Paso a Paso
Anuncio relacionado

Introducción al error Permission Denied en SSH

Uno de los problemas más frustrantes para los administradores de sistemas y desarrolladores que trabajan con servidores Linux es encontrarse con el mensaje Permission denied (publickey) al intentar conectarse mediante SSH. Este fallo de autenticación impide el acceso remoto al servidor, bloqueando cualquier tarea de despliegue o gestión.

Causas principales del fallo de claves SSH

El error ocurre generalmente porque el servidor rechaza la clave pública proporcionada por el cliente. Las causas más comunes incluyen:

  • Permisos incorrectos en el directorio .ssh o en el archivo authorized_keys.
  • La clave pública no está registrada correctamente en el servidor remoto.
  • El servicio SSH (sshd) tiene deshabilitada la autenticación por clave pública en el archivo de configuración.
  • Se está intentando usar el usuario incorrecto o la clave privada no se está cargando en el agente SSH.

Método 1: Corregir los permisos de archivos y carpetas SSH

Linux es extremadamente estricto con los permisos de seguridad. Si la carpeta .ssh o sus archivos tienen permisos de escritura para el grupo o otros usuarios, el servidor rechazará la conexión por motivos de seguridad.

  1. Accede a tu servidor local y asegúrate de que tu carpeta personal tenga los permisos correctos ejecutando chmod 700 ~/.ssh.
  2. Verifica los permisos del archivo de claves autorizadas con el comando chmod 600 ~/.ssh/authorized_keys.
  3. Comprueba que el propietario del directorio sea el usuario correcto utilizando chown -R $USER:$USER ~/.ssh.

Método 2: Verificar la configuración del servidor SSH (sshd_config)

Si los permisos son correctos pero el error persiste, es probable que el demonio SSH en el servidor esté configurado para no permitir accesos mediante claves.

  1. Abre el archivo de configuración con privilegios de superusuario: sudo nano /etc/ssh/sshd_config.
  2. Busca las siguientes líneas y asegúrate de que estén descomentadas y configuradas de esta manera:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
  1. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración ejecutando sudo systemctl restart ssh o sudo systemctl restart sshd según tu distribución.

Método 3: Depurar la conexión con el modo verbose

Si aún no puedes acceder, necesitas ver exactamente qué está fallando durante el intercambio de claves. Utiliza el modo de depuración de SSH desde tu máquina cliente:

  1. Ejecuta el comando de conexión añadiendo la bandera -v o -vvv para obtener la máxima verbosidad: ssh -vvv usuario@tu-servidor-ip.
  2. Analiza la salida en la terminal para identificar en qué paso exacto el servidor rechaza la credencial (por ejemplo, si no encuentra la clave o si esta es ignorada).
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Windows

Cómo Solucionar el Error Critical Process Died en Windows 10 y 11 Definitivamente

Aprende a solucionar el temido error de pantalla azul Critical Process Died en Windows con nuestra guía experta. Recupera la estabilidad de tu sistema hoy mismo.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error 'Segmentation Fault' (Core Dumped) en C y C++ de Forma Definitiva

El error de segmentación es uno de los fallos más temidos por los desarrolladores en C y C++. Descubre cómo detectarlo y solucionarlo de manera definitiva.

Leer guía completa →
Juegos

Cómo Solucionar el Error de GPU Hang en Juegos de PC de Forma Definitiva

¿Tus juegos se congelan o se cierran inesperadamente mostrando un error de GPU Hang? Aprende a solucionarlo con este método definitivo.

Leer guía completa →