Inicio » Cómo solucionar el error Permission Denied (publickey) en conexiones SSH
Sistemas y Servidores

Cómo solucionar el error Permission Denied (publickey) en conexiones SSH

✨ Respuesta Rápida

El error Permission denied (publickey) al intentar conectarte a un servidor remoto mediante SSH ocurre porque el demonio SSH (sshd) en el servidor remoto rechaza la clave privada presentada por tu cliente. Esto se debe habitualmente a permisos de archivos demasiado permisivos, lo cual invalida la seguridad de la conexión y obliga al servidor a descartar el intento por protección.

El Diagnóstico Rápido

Causa
Permisos excesivamente abiertos en el archivo de clave privada (~/.ssh/id_rsa)
Solución
Asignar permisos estrictos a la clave privada: chmod 600 ~/.ssh/id_rsa
Causa
Clave pública no agregada al archivo authorized_keys del servidor remoto
Solución
Copiar la clave pública al servidor con ssh-copy-id usuario@servidor

El error Permission denied (publickey) al intentar conectarte a un servidor remoto mediante SSH ocurre porque el demonio SSH (sshd) en el servidor remoto rechaza la clave privada presentada por tu cliente. Esto se debe habitualmente a permisos de archivos demasiado permisivos, lo cual invalida la seguridad de la conexión y obliga al servidor a descartar el intento por protección.

La Solución Paso a Paso

  1. 1

    Paso 1: Corregir los permisos de tu clave privada en el cliente

    La clave privada nunca debe ser legible por otros usuarios de la máquina local. Ajusta los permisos del archivo .pem o id_rsa:

    BASH
    # Cambiar permisos para que solo el propietario pueda leer el archivo
    chmod 600 ~/.ssh/id_rsa
    
  2. 2

    Paso 2: Ajustar los permisos del directorio .ssh y autorizaciones en el servidor

    Accede a la consola del servidor (a través de TTY o consola del proveedor de hosting) y ejecuta las siguientes correcciones sobre tu directorio de inicio:

    BASH
    # Asegurar el directorio de configuración de SSH
    chmod 700 ~/.ssh
    
    # Asegurar el archivo que almacena las claves autorizadas
    chmod 600 ~/.ssh/authorized_keys
    
    # Restablecer la propiedad de los archivos a tu usuario actual
    chown -R $USER:$USER ~/.ssh
    
  3. 3

    Paso 3: Comprobar la directiva de autenticación en el servidor

    Si el error persiste, edita el archivo de configuración del servicio SSH en el servidor /etc/ssh/sshd_config y verifica que la autenticación por clave pública esté habilitada:

    PLAINTEXT
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    

    Reinicia el servicio para aplicar los cambios:

    BASH
    sudo systemctl restart sshd
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Evita compartir tu clave privada a través de medios inseguros o utilizar permisos laxos en el host local. Mantén siempre el principio de mínimos privilegios en tu configuración SSH. Configurar la directiva StrictModes yes en el servidor obliga a SSHD a rechazar conexiones de forma proactiva si los permisos de la carpeta personal o archivos autorizados son inseguros, previniendo intrusiones accidentales por descuidos en el sistema de archivos.