Vamos a explicar cómo configurar nuestra máquina para poder acceder a varios repositorios Git, usando diferentes credenciales entre ellos, sin necesidad de estar cambiando constantemente de cuentas.
La guía aplica tanto para Windows como para Linux y no tiene límites en la cantidad de cuentas por proveedor. Si usas Github Desktop, puedes ver estas guías que son más sencillas.
Puedes tener una cuenta configurada normalmente y usar este método para añadir las demás. Por ejemplo, si usas Github y ya lo tienes configurado, sólo debes seguir este procedimiento para las cuentas adicionales que vayas a incluír.
Instrucciones
-
Tener instalado GIT en nuestra máquina.
-
Abrir Git Bash (en Windows se encuentra en el menú inicio luego de instalar GIT), en Linux podemos usar la línea de comandos por defecto.
-
Ir a la siguiente ubicación. En caso de que la carpeta .ssh no exista, crearla.
# Windows C:\NOMBRE_DE_USUARIO\.ssh # Linux ~/.ssh
-
Crear una nueva key ssh. Importante: Cuando el comando ejecutado pida un passphrase, como se supone que estás en un computador de confianza, puedes dar ENTER y dejar la llave sin passphrase, de esta forma te ahorrarás tener que estarla ingresando constantemente (o en su defecto tener que configurar el ssh-agent).
# Windows ssh-keygen.exe # Cuando pregunte por el filename, por ejemplo: file name: id_rsa_gitlab # Linux ~/.ssh-keygen -t rsa -b 4096 # Seguir instrucciones de igual forma que con Windows.
Para el nombre del archivo, es recomendable usar algo descriptivo como: id_rsa_PROVEEDOR_CUENTA, donde los proveedores pueden ser github, gitlab, azurerepos, etc. Y la cuenta deberías usarlo sólo en caso de tener más de una por proveedor. Por ejemplo: id_rsa_github, id_rsa_gitlab, id_rsa_github_work, id_rsa_gitlab_work, etc.
-
Se crearán dos archivos, uno de ellos con extensión .pub (de public), abre el archivo y copia todo su contenido para agregar la clave al proveedor respectivo:
-
En general los pasos deberían ser: ser buscar en la configuración del proveedor, pegar la llave y guardar.
-
Añadir una clave SSH en Gitlab - Sigue las instrucciones a partir del paso 2.
-
Añadir una clave SSH en Azure Repos - Sigue las instrucciones a partir del paso 2.
-
Añadir una clave SSH en Bitbucket - Sigue las instrucciones a partir del paso 2.
-
-
A continuación vamos a crear un archivo llamado config en la carpeta .ssh donde creamos las llaves anteriormente. El contenido del archivo podría ser un fragmento del siguiente (copia y personaliza sólo la parte que necesites, puedes tener tantas como quieras):
# Github Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa_github # Gitlab Host gitlab.com HostName gitlab.com User git IdentityFile ~/.ssh/id_rsa_gitlab # Azure repos Host ssh.dev.azure.com HostName ssh.dev.azure.com IdentityFile ~/.ssh/id_rsa_azurepos # Reemplaza con tu cuenta User your_msft@account.com IdentitiesOnly yes # Bitbucket Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_bitbucket # En caso de tener múltiples cuentas por proveedor # Por ejemplo: # Github work Host github.com-work HostName github.com User git IdentityFile ~/.ssh/id_rsa_github_work
-
Clona el proyecto abriendo la URL del repo y escogiendo la opción SSH. Ten en cuenta lo siguiente:
-
Si sólo tienes una cuenta de ese proveedor:
git clone URL_SSH # Ejemplo git clone git@github.com:equilaterus/wikilaterus.git
-
Si tienes varias cuentas por proveedor, asegúrate de usar el Host correcto:
# Modifica el host! git clone URL_SSH_MODIFICADA # Ejemplo git clone git@github.com-work:equilaterus/wikilaterus.git
-
Luego de esto, podrás manipular tus repositorios normalmente, sin importar a qué cuenta pertenezcan. La ventaja, es que la configuración sólo debes hacerla una vez y de acuerdo al host que utlices durante el comando git clone, nuestro GIT sabrá que llaves utilizar para obtener acceso al repositorio.