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
Mac

Cómo Solucionar el Error de 'Imposible Verificar la Aplicación' en Mac de Forma Definitiva

Te explicamos por qué macOS bloquea ciertas aplicaciones externas y cómo puedes omitir esta advertencia de seguridad de forma rápida y segura.

Leer guía completa →
Juegos

Cómo Solucionar el Error de la Pantalla Negra en VALORANT de Forma Definitiva

La pantalla negra al arrancar VALORANT es un problema frustrante pero común. Descubre cómo solucionarlo definitivamente con estos métodos.

Leer guía completa →
Magento

Cómo Solucionar el Error Exception Print-ID en Magento 2 Definitivamente

Te mostramos cómo diagnosticar y solucionar el error de excepciones en Magento 2 usando la terminal SSH. Recupera el acceso a tu e-commerce de forma rápida.

Leer guía completa →