¿Cómo tener múltiples llaves SSH para tu GitHub personal y de trabajo?

Contar con un servicio para alojar tus repositorios es un requerimiento prácticamente esencial para poder trabajar como desarrollador, esto independientemente de tu área de especialización, de estos servicios puedes tener como opciones a Bitbucket, GitLab o Github.

Para poder descargar y enviar cambios de ciertos repositorios como lo son los proyectos privados, necesitarás de configurar las llaves SSH para que estos servicios puedan autentificarte con los respectivos permisos.

Si no haces este proceso lo más seguro es que el repositorio no te permita hacer cambios de ningún tipo, para este tema contamos ya con un artículo explicando el paso a paso de cómo configurar tus llaves, el cual te dejaré aquí: ¿Cómo configurar las llaves SSH para hacer push a GitHub?para esto tendrás que tener una cuenta de GitHub y conocimiento de la herramienta Git, del cual si aún no sabes cómo utilizarlo te dejaré el link a nuestro curso Git: Sin Fronteras.

Si ya logramos conectar nuestras llaves a nuestro servicio, me surgió un problema, que sucede si tengo dos cuentas de GitHub, por ejemplo una personal y una laboral, y comencé a darle vueltas, ya que GitHub no te permite usar dos veces la misma llave, pero necesitaba de tener esta configuración para poder enviar mis cambios a los repositorios de la organización.

Lo primero que se me vino a la mente fue hacer un segundo usuario y que este tuviera las llaves de la organización, pero hay otro camino, y es que en el mismo usuario podemos tener varias llaves SSH para usar en nuestras diferentes cuentas, y en este tutorial es el problema que vamos a resolver.

¿Cómo configuro dos llaves SSH?

Lo primero es que nuestras llaves anteriores hay que borrarlas 😢, lo sé, tedioso volver a hacer el proceso, afortunadamente solo tenía una que es la que normalmente se crea con el nombre de id_rsa e id_rsa.pub.

Ahora vamos a usar un comando similar al que usamos anteriormente para crear las llaves, pero con un par de detalles:

ssh-keygen -t rsa -b 4096 -C <tu@correo.com> -f ~/.ssh/<el_nombre_de_tu_key>

Le agregaremos la bandera f y con la dirección de la carpeta .ssh pero le podremos agregar un nombre personalizado, así por ejemplo, si colocamos la llave chanchitoFeliz, así se va a llamar la llave, me va a crear un archivo chanchitoFeliz como la llave privada y un archivo chanchitoFeliz.pub como la llave pública.

Con este mismo comando podremos crear la segunda llave que necesitaremos, pero lo que haremos es cambiar obviamente los datos del correo y otro nombre, por ejemplo chanchitoTrabajador, y lo mismo, este comando va a crear el archivo chanchitoTrabajador y chanchitoTrabajador.pub en la carpeta .ssh

Ahora tendremos las dos llaves listas.

Agregar tus llaves al agente SSH

Ahora vamos a agregar estas dos llaves al agente SSH de nuestro sistema, esto lo haremos con el comando:

ssh-add ~/.ssh/<nombre de la llave privada>

Para nuestro ejemplo, que hemos creado nuestras llaves, tendremos que utilizarlos para ambas llaves

ssh-add ~/.ssh/chanchitoFeliz
ssh-add ~/.ssh/chanchitoTrabajador

Si quieres comprobar las llaves que tenemos agregadas, podemos usar:

ssh-add -l

Con esto deberíamos ver las llaves listadas con su respectivo correo electrónico.

Archivo config

Lo siguiente será crear un archivo config y editarlo de la siguiente manera, con el siguiente comando puedes crear el archivo:

 nano ~/.ssh/config

Cuando te encuentres editando, tienes que tener un texto similar a esto:

# Configuración para la organización
Host laboral
    HostName github.com
    User git
    IdentityFile ~/.ssh/chanchitoTrabajador

# Configuración personal
Host personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/chachitoFeliz

En Host, lo que he colocado en mi configuración real, el nombre de la organización y mi nombre de usuario, esto para poder recordarlo.

Agregar cada llave pública a GitHub

Ahora lo siguiente es agregar las llaves SSH a nuestras cuentas de GitHub, pero el tutorial pasó a paso de esto lo tenemos aquí, solo recuerda cómo se llama tu llave pública para poder copiar el correspondiente contenido en cada una de las cuentas: ¿Cómo configurar las llaves SSH para hacer push a GitHub?

Hacer prueba para clonar los repositorios

Pero ahora cuando clonemos un proyecto, si bien vamos a hacer el mismo proceso que siempre hemos hecho, vamos a ver una diferencia.

Imagina que mi usuario es chanchitoFeliz, y voy a clonar el repositorio de mi proyecto personal, veríamos una dirección parecida a esta:

git@github.com:chanchitoFeliz/proyectoPersonal.git 

ahora, si clonamos este proyecto en nuestra terminal, suponiendo que es la cuenta personal que hemos dejado en las configuraciones del archivo config , tendremos que cambiar la parte de github.com por el host que agregamos, en este ejemplo es personal, por lo que sustituiremos para que quede de la siguiente manera:

git clone git@personal:chanchitoFeliz/proyectoPersonal.git 

Claro que si es que se trata de un repositorio de la organización, tendríamos que cambiar el nombre por:

git clone git@laboral:chanchitoFeliz/proyectoPersonal.git 

Si todo está correcto, verás que puedes utilizar sin problemas ambas llaves en una misma instancia de usuario sin tener que crear uno nuevo, si tienes algo incorrecto lo más probable es que te diga que no existe el repositorio.


De nuevo te drecordamos que tenemos un curso de Git por si quieres aprender el uso de esta herramienta la cual es sumamente util Git: Sin Fronteras

Ademas, te dejaremos el enlace a todos nuestros cursos de programación, los cuales los encontrarás disponibles en la academia Hola Mundo y puedes optar por adquirir los cursos de manera individual en el siguiente link: todos los cursos de Hola Mundo, si prefieres acceso a todo, también puedes elegir un plan de suscripción mensual o anual, y además te invitamos al siguiente enlace donde vas a poder obtener un descuento en tu primer año a sólo $49.90 usando el cupón PRIMERA_VEZ al momento de realizar tu pago

acceso a todo primer año

O igualmente puedes optar por cada curso de manera individual en Udemy.

Y esto ha sido todo de este post, si te ha encantado, ¡golpea al botón de me gusta!, dejanos un comentario, y para no perderte nada, no olvides suscribirte a este blog, seguirnos en todas las redes como Youtube, Twitter, Instagram y Tiktok, y por último, te invitamos a escuchar nuestra música «Hola Beats«, diseñada para ayudarte a concentrarte y acompañarte en tu aprendizaje o trabajo, la puedes encontrar en Spotify, Apple Music, Amazon Music, Youtube Music y Deezer.

¡Hasta la próxima!, y chao mundo

Gabriel Hernández

Soy desarrollador fullstack autodidacta y estudié administración en la universidad. Mi stack es principalmente con JavaScript, haciendo frontend con React y Next, y backend con Node y Express. Otras herramientas con las que he trabajado son Python para backend y Solidity para desarrollo de contratos inteligentes.

Deja un comentario

Press ESC to close

Descubre más desde Hola Mundo

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo