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 repositorios remotos mediante SSH en entornos Linux es el temido mensaje Permission denied (publickey). Este error ocurre cuando el servidor remoto rechaza la clave pública proporcionada por tu cliente, impidiendo la autenticación. A continuación, exploraremos las causas principales y cómo solucionarlo paso a paso.

Causas principales del fallo de autenticación SSH

El rechazo de la clave pública suele deberse a fallos comunes en la configuración del cliente o del servidor. Entre las causas más frecuentes se encuentran:

  • Permisos incorrectos en el directorio .ssh o en los archivos de claves.
  • El servicio SSH en el servidor no tiene habilitada la autenticación por clave pública.
  • La clave privada correcta no está cargada en el agente SSH (ssh-agent).
  • La clave pública no ha sido añadida correctamente al archivo authorized_keys del servidor.

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 el archivo authorized_keys tienen permisos de escritura para otros usuarios, el servidor rechazará la conexión por motivos de seguridad.

  1. Abre tu terminal local o en el servidor afectado.
  2. Ejecuta el siguiente comando para ajustar los permisos del directorio .ssh:
    chmod 700 ~/.ssh
  3. Establece los permisos correctos para la clave privada (ejemplo id_rsa):
    chmod 600 ~/.ssh/id_rsa
  4. Establece los permisos correctos para el archivo de claves autorizadas:
    chmod 600 ~/.ssh/authorized_keys

Método 2: Verificar y añadir la clave al agente SSH

A veces, el cliente SSH no está utilizando la clave correcta al intentar establecer la conexión. Debes asegurarte de que tu clave privada esté cargada en el agente.

  1. Inicia el agente SSH en segundo plano ejecutando:
    eval "$(ssh-agent -s)"
  2. Añade tu clave privada predeterminada o específica con el comando:
    ssh-add ~/.ssh/id_rsa
  3. Verifica que la clave se haya añadido correctamente listando las huellas digitales:
    ssh-add -l

Método 3: Revisar la configuración del servidor SSH (sshd_config)

Si el problema persiste desde el lado del servidor, es probable que la configuración en /etc/ssh/sshd_config esté bloqueando el acceso por claves públicas.

  1. Accede al servidor con un usuario con privilegios root o sudo y abre el archivo de configuración:
    sudo nano /etc/ssh/sshd_config
  2. Busca y asegúrate de que las siguientes directivas estén descomentadas y configuradas correctamente:
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
  3. Guarda los cambios y reinicia el servicio SSH para aplicar la nueva configuración:
    sudo systemctl restart sshd
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
WordPress

Cómo Solucionar el Error al Establecer una Conexión con la Base de Datos en WordPress de Forma Definitiva

Descubre por qué ocurre el temido error de conexión a la base de datos en WordPress y cómo solucionarlo rápidamente. Sigue nuestros pasos para recuperar el acceso total a tu sitio.

Leer guía completa →
Juegos

Cómo Solucionar el Error ERR_GFX_D3D_INIT en GTA V de Forma Definitiva

¿El juego se cierra inesperadamente con el código ERR_GFX_D3D_INIT? Descubre los mejores métodos para solucionarlo y jugar sin interrupciones.

Leer guía completa →
Desarrollo

Cómo Solucionar el Error fatal: refusing to merge unrelated histories en Git

Si al intentar hacer un pull o merge en Git te encuentras con este error, significa que tus repositorios no comparten un historial común. Aquí te enseñamos cómo unificarlos de forma segura paso a paso.

Leer guía completa →