Ejecutar comandos de GIT con llave RSA

Author
Por Darío Rivera
Publicado el en SSH

Al trabajar con repositorios en GitHub, Bitbucket, GitLab y otras plataformas es común encontrarse con dos formas de clonar un repositorio. La primera consiste en utilizar el protocolo HTTP/HTTPS y la segunda el protocolo SSH. El día de hoy veremos cómo descargar un repo y realizar las operaciones de GIT mediante SSH con una llave RSA.

Lo primero que debes hacer es crear tu propia llave RSA, para esto te recomiendo visitar el artículo Qué es una llave RSA, cómo crearla y cómo utilizarla. Lo siguiente es loguearte en la plataforma del VCS y agregar la parte pública de la llave rsa. Esta última parte depende mucho del sistema que estés utilizando.

En GitHub

Vas a Settings > SSH and GPG keys y das clic en New SSH Key.

github ssh 

En Bitbucket

Vas a Personal Settings > SSH keys y das clic en Add key.

bitbucket ssh

Una vez hecho esto podrás clonar un repositorio por SSH así.

git clone git@github.com:pleets/php-http-clients.git

Ejecutar comandos con una llave RSA específica

En algunas ocasiones necesitas descargar un repo privado con una llave rsa distinta a la habitual la cual tiene el nombre id_rsa. Resulta que por defecto, esta llave es configurada para ser utilizada sin pedirla y no hay forma de enviar un parámetro en consola tal como -i llave.pem para que los comandos de GIT utilicen esa llave. Si ya tienes una llave id_rsa entonces el clonado del repo utilizará esta y no otra, así como también las acciones que tengan interacción con el servidor tales como fetch, pull, y push. Una solución a este problema es utilizar una configuración de git que permite setear esta llave previamente así.

git config core.sshCommand "ssh -i ~/.ssh/id_rsa_example"

Sin embargo, para que este comando funcione deberás haber descargado previamente el repositorio por HTTP/HTTPS. Una vez hecho esto y estando en el path del repo puedes ejecutar dicho comando y después de esto cualquier comando con interacción al servidor utilizará la llave especificada.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.