Solucionar el error «Permission Denied (publickey)» al intentar hacer push a un repositorio GIT

Estándar

Este artículo les ayudará en caso de que estén recibiendo el error «Permission Denied (publickey)» al intentar hacer push a un repositorio GIT

La causa de este error no es nada del otro mundo, simplemente significa que no se han creado llaves SSH en la máquina local. Así lo solucionamos:

  1. En Windows abrir la consola git (bash) (se puede hacer utilizando el buscador de Windows y escribiendo «git bash») o si estamos en una Mac abrimos la Terminal. (Consejo: Se puede usar cualquier terminal de tipo *nix  (menos la «línea de comandos» por defecto de Windows)
  2. Escribir 
    cd ~/.ssh
    Esto nos llevará al directorio raíz de Git (Por lo general es C:\Usuarios\[TU-USUARIO]\.ssh\ en Windows)
  3. Dentro de esa carpeta .ssh , deben haber estos dos archivos: 
    id_rsa
     y 
    id_rsa.pub
    Estos son los archivos que permitirán a tu computador comunicarse con GitHub, BitBucket, o cualquier otro servicio basado en Git.
  4. Escribir
    ls
    para ver el listado del directorio. Si esos archivos no aparecen, continúa al siguiente paso.
    NOTA: Tus llaves SSH deben llamarse: id_rsa e id_rsa.pub para que Git, GitHub y BitBucket las reconozcan por defecto.
  5. Para crear nuevas llaves SSH, escribe: 
    ssh-keygen -t rsa -C "tu_email@ejemplo.com"
    Esto creará ambos archivos id_rsa y id_rsa.pub.
  6. Luego, abrir el archivo  
    id_rsa.pub
    en tu editor de texto favorito, esto se puede realizar en Windows Explorer o en el Finder de OSX, escribiendo: 
    open .
    (y abrirá la carpeta).
  7. Luego copia todo el contenido –exactamente como está en el archivo id_rsa.pub, sin líneas ni espacios extras– y pegara todo ese texto en GitHub y/o BitBucket dentro de las configuraciones de cuenta (Account Settings) > SSH Keys.
    NOTA: Es preferible darle un nombre descriptivo a la llave SSH, usualmente con el nombre de la estación de trabajo o computadora desde la cual se están realizando los push.
  8. Ahora que ha añadido su llave pública a Github u/o BitBucket, intentar nuevamente el comando push.
    Por ejemplo:
    git push origin feature/X-3366
     y verificar que funciona.

Saludos!