Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux de Forma Definitiva

Cómo Solucionar el Error Permission Denied (publickey) en SSH en Linux de Forma Definitiva
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 utilizan Linux es encontrarse con el temido mensaje Permission denied (publickey) al intentar conectarse a un servidor remoto mediante SSH. Este error indica que el servidor ha rechazado tus credenciales de autenticación, impidiendo el acceso a la terminal.

Causas Principales del Error SSH Publickey

Existen diversos motivos por los cuales Linux bloquea tu acceso SSH. Las causas más comunes incluyen:

  • Permisos incorrectos en el directorio ~/.ssh o en el archivo authorized_keys.
  • La clave pública no ha sido copiada correctamente en el servidor remoto.
  • El servicio SSH en el servidor no permite la autenticación por clave pública.
  • Estás intentando autenticarte con el usuario incorrecto.

Método 1: Corregir los Permisos de Archivos y Directorios SSH

El servidor SSH de Linux es extremadamente estricto con la seguridad. Si los permisos de tus carpetas o archivos de configuración son demasiado abiertos, la conexión será rechazada automáticamente.

  1. Accede a tu servidor utilizando otro método de entrada (como la consola de recuperacion de tu proveedor VPS).
  2. Ejecuta el siguiente comando para asegurar que la carpeta .ssh tiene los permisos correctos (700):
    chmod 700 ~/.ssh
  3. Establece los permisos correctos (600) para el archivo de claves autorizadas:
    chmod 600 ~/.ssh/authorized_keys
  4. Asegúrate de que el usuario propietario sea el correcto:
    chown -R $USER:$USER ~/.ssh

Método 2: Verificar la Configuración del Servidor SSH (sshd_config)

Si los permisos son correctos, es posible que el archivo de configuración del demonio SSH en el servidor esté bloqueando el acceso por 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
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración:
    sudo systemctl restart ssh o sudo systemctl restart sshd

Método 3: Depurar la Conexión con Modo Verbose

Si el problema persiste, necesitas ver exactamente qué está fallando durante el intercambio de claves. Utiliza el modo de depuración desde tu máquina local:

  1. Ejecuta el comando SSH añadiendo la opción -v (o hasta -vvv para máxima información):
    ssh -v usuario@tu-servidor-ip
  2. Revisa la salida en pantalla para identificar si el cliente está enviando la clave correcta y qué error exacto devuelve el servidor en el proceso de autenticación.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
Linux

Cómo Solucionar el Error de Bloqueo de APT (Could not get lock /var/lib/dpkg/lock-frontend) en Linux de Forma Definitiva

¿Te aparece un error al intentar actualizar paquetes en Linux? Descubre cómo liberar el bloqueo de dpkg de forma rápida y segura.

Leer guía completa →
Linux

Cómo Solucionar el Error de Inodos al 100% y Espacio en Disco LLeno en Linux de Forma Definitiva

Aprende a identificar y resolver el problema de agotamiento de inodos y espacio en disco en sistemas Linux de manera rápida y segura.

Leer guía completa →
Hardware

Cómo Solucionar el Error CPU Over Temperature Error en el Arranque de la PC

¿Tu ordenador se apaga o muestra un aviso de temperatura excesiva al encender? Descubre cómo solucionar el error CPU Over Temperature Error de forma definitiva.

Leer guía completa →