Cómo Solucionar el Error 'Permission denied (publickey)' en Linux de Forma Definitiva

Cómo Solucionar el Error 'Permission denied (publickey)' en Linux de Forma Definitiva
Anuncio relacionado

Introducción al error Permission denied (publickey) en Linux

Uno de los problemas más frustrantes al administrar servidores o conectarse a máquinas remotas mediante SSH en Linux es encontrarse con el mensaje de error Permission denied (publickey). Este fallo impide por completo el acceso remoto, dejándote fuera del sistema si no dispones de acceso físico o por consola de recuperacion.

Causas principales del error de clave pública SSH

Este inconveniente de seguridad y autenticación suele estar provocado por una mala configuración en los permisos de los archivos del directorio home, la ausencia de la clave pública en el archivo authorized_keys del servidor remoto, o porque el servicio SSH no está configurado para aceptar autenticación por llaves.

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

El servidor SSH rechaza la conexión si los permisos en tu máquina local o en el servidor remoto son demasiado abiertos. Debes asegurarte de que la carpeta .ssh y sus archivos internos tengan los permisos estrictos recomendados por Linux.

  1. Abre tu terminal en la máquina local o remota según corresponda.
  2. Ejecuta el siguiente comando para corregir los permisos de la carpeta .ssh:
    chmod 700 ~/.ssh
  3. Asegúrate de que el archivo de la llave privada tenga permisos de lectura y escritura exclusivos para tu usuario:
    chmod 600 ~/.ssh/id_rsa
  4. Verifica que el archivo de claves autorizadas tenga los permisos correctos en el servidor remoto:
    chmod 600 ~/.ssh/authorized_keys

Método 2: Copiar correctamente la clave pública al servidor remoto

Si la clave pública no se encuentra registrada en el servidor de destino, la autenticación fallará inevitablemente. Puedes solucionarlo utilizando la herramienta automatizada ssh-copy-id.

  1. Genera un par de claves si aún no lo has hecho ejecutando:
    ssh-keygen -t rsa -b 4096
  2. Envía tu clave pública al servidor remoto ejecutando el siguiente comando desde tu terminal local:
    ssh-copy-id usuario@tu_servidor_ip
  3. Introduce la contraseña de tu usuario cuando sea solicitada. Una vez completado, intenta conectarte nuevamente mediante ssh usuario@tu_servidor_ip.

Método 3: Comprobar la configuración del servicio SSH (sshd_config)

A veces, el problema radica en las directivas de seguridad configuradas en el archivo principal del demonio SSH en el servidor.

  • Accede al servidor mediante consola física o de emergencia.
  • Edita el archivo de configuración con privilegios de superusuario:
    sudo nano /etc/ssh/sshd_config
  • Busca y asegúrate de que las siguientes líneas estén activas y descomentadas (sin el símbolo # al inicio):
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  • Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración:
    sudo systemctl restart ssh
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

Descubre las causas principales del error CRITICAL_PROCESS_DIED en Windows y aplica nuestros métodos efectivos para solucionarlo de forma definitiva.

Leer guía completa →
Juegos

Cómo Solucionar el Error de Faltan Archivos de Contenido en Steam Definitivamente

¿Steam te muestra el error de faltan archivos de contenido al actualizar o iniciar tus juegos? Descubre cómo solucionarlo definitivamente con este tutorial.

Leer guía completa →
Magento

Cómo Solucionar el Error de Límite de Memoria en Magento 2 de Forma Definitiva

Descubre cómo resolver el fallo de memoria agotada en Magento 2 modificando configuraciones clave de PHP y CLI. ¡Evita caídas en tu e-commerce!

Leer guía completa →