Ejecutar comandos de GIT con llave RSA
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.
En Bitbucket
Vas a Personal Settings > SSH keys y das clic en Add key.
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.