Cómo Solucionar el Error Permission Denied (publickey) en Git en Linux Definitivamente

Cómo Solucionar el Error Permission Denied (publickey) en Git en Linux Definitivamente
Anuncio relacionado

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

Cuando trabajas con control de versiones en Linux e intentas clonar, hacer push o pull en un repositorio remoto utilizando SSH (como GitHub, GitLab o Bitbucket), es muy común encontrarse con el frustrante error Permission denied (publickey). Este problema ocurre cuando el servidor remoto rechaza tu clave pública porque no puede verificar tu identidad o porque el cliente SSH no está enviando la clave correcta.

Causas principales del fallo de autenticación SSH

Las razones más habituales por las que aparece este error en distribuciones Linux son:

  • No tienes ninguna clave SSH generada en tu equipo o no está en la ruta predeterminada.
  • El agente SSH (ssh-agent) no está ejecutándose o no tiene tu clave cargada.
  • La clave pública correspondiente no ha sido añadida correctamente en tu cuenta de GitHub, GitLab o el servicio que utilices.
  • Problemas de permisos en el directorio ~/.ssh o en los archivos de claves.

Método 1: Verificar y añadir tu clave SSH al agente SSH

El primer paso es comprobar si el agente SSH está activo y si tu clave está registrada en él.

  1. Abre tu terminal de Linux.
  2. Inicia el agente SSH en segundo plano ejecutando el comando: eval "$(ssh-agent -s)"
  3. Añade tu clave privada predeterminada con: ssh-add ~/.ssh/id_rsa (si utilizas una clave Ed25519, reemplaza id_rsa por id_ed25519).
  4. Si el sistema te devuelve un error indicando que no encuentra el archivo, significa que necesitas generar una nueva clave SSH.

Método 2: Generar una nueva clave SSH y asociarla

Si no dispones de una clave o la anterior está corrupta, puedes crear una nueva credencial segura.

  1. Genera la clave ejecutando el siguiente comando (reemplaza el correo por el tuyo): ssh-keygen -t ed25519 -C "tu_correo@ejemplo.com"
  2. Pulsa Intro para aceptar la ubicación predeterminada y añade una contraseña si lo deseas (o déjala en blanco).
  3. Inicia el agente y añade la nueva clave: eval "$(ssh-agent -s)" && ssh-add ~/.ssh/id_ed25519
  4. Muestra el contenido de tu clave pública para copiarla: cat ~/.ssh/id_ed25519.pub
  5. Copia el texto resultante, dirígete a la configuración de SSH en tu plataforma de Git (GitHub, GitLab, etc.) y añádela como una nueva clave pública.

Método 3: Corregir los permisos de la carpeta .ssh

Linux es muy estrictos con los permisos de los archivos de seguridad. Si los permisos de tu carpeta ~/.ssh son demasiado abiertos, SSH denegará el acceso por seguridad.

  1. Abre tu terminal y ejecuta los siguientes comandos para ajustar los permisos recomendados:
  2. chmod 700 ~/.ssh
  3. chmod 600 ~/.ssh/id_rsa (o chmod 600 ~/.ssh/id_ed25519 según tu tipo de clave).
  4. chmod 644 ~/.ssh/id_rsa.pub (o el archivo equivalente con terminación .pub).
  5. Verifica la conexión ejecutando: ssh -T git@github.com (cambiando el host según corresponda). Debería saludarte con éxito y solucionar el error de forma definitiva.
Anuncio
Seguir Leyendo

Guías y Soluciones Relacionadas

Windows Apps Juegos
WordPress

Cómo Solucionar la Pantalla Blanca de la Muerte en WordPress Definitivamente

La pantalla blanca de la muerte es uno de los fallos más frustrantes en WordPress. Aprende a identificar su causa y a solucionarla rápidamente.

Leer guía completa →
Hardware

Cómo Solucionar el Error de Memoria Reservada para Hardware Demasiado Alta en Windows

Descubre por qué Windows limita tu memoria RAM y cómo solucionar el molesto problema de la memoria reservada para hardware excesiva.

Leer guía completa →
WordPress

Cómo Solucionar la Pantalla Blanca de la Muerte (WSoD) en WordPress de Forma Definitiva

Aprende a diagnosticar y solucionar el temido error de la pantalla blanca en WordPress. Guía técnica paso a paso para recuperar tu web.

Leer guía completa →