Ejecutar comandos de GIT con llave RSA

Author
By Darío Rivera
Posted on 2020-09-23 in 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.


Si te ha gustado este artículo puedes invitarme a tomar una taza de café


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

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