DEV Community

Cover image for ๐Ÿง  Cรณmo Sobrevivir a Mรบltiples Cuentas de GitHub sin Perder Tu Sanidad Mental (y Tu Trabajo)
francotel
francotel

Posted on

๐Ÿง  Cรณmo Sobrevivir a Mรบltiples Cuentas de GitHub sin Perder Tu Sanidad Mental (y Tu Trabajo)

๐ŸŒ…ย ๐—˜๐—น ๐— ๐—ผ๐—บ๐—ฒ๐—ป๐˜๐—ผ ๐—ฑ๐—ฒ๐—น ๐—ฃรก๐—ป๐—ถ๐—ฐ๐—ผ: ๐Ÿฎ ๐—”๐— , ๐—ฉ๐—ถ๐—ฒ๐—ฟ๐—ป๐—ฒ๐˜€ ๐—ฝ๐—ผ๐—ฟ ๐—น๐—ฎ ๐—ก๐—ผ๐—ฐ๐—ต๐—ฒ

๐˜จ๐˜ช๐˜ต ๐˜ฑ๐˜ถ๐˜ด๐˜ฉ ๐˜ฐ๐˜ณ๐˜ช๐˜จ๐˜ช๐˜ฏ ๐˜ฎ๐˜ข๐˜ช๐˜ฏ
Enter fullscreen mode Exit fullscreen mode

๐—˜๐—ฅ๐—ฅ๐—ข๐—ฅ: ๐—ฃ๐—ฒ๐—ฟ๐—บ๐—ถ๐˜€๐˜€๐—ถ๐—ผ๐—ป ๐—ฑ๐—ฒ๐—ป๐—ถ๐—ฒ๐—ฑ (๐—ฝ๐˜‚๐—ฏ๐—น๐—ถ๐—ฐ๐—ธ๐—ฒ๐˜†).ย โŒ

Mi corazรณn se detuvo por 3 segundos.

Eran las 2 de la madrugada. Mi jefe necesitaba el hotfix para la demo con el cliente en Asia en 6 horas. Y yo, desde mi laptop personal, estaba viendo cรณmo el universo conspiraba contra mi fin de semana.

El problema:ย ๐—š๐—ถ๐˜๐—›๐˜‚๐—ฏ ๐—ป๐—ผ ๐˜€๐—ฎ๐—ฏรญ๐—ฎ ๐˜€๐—ถ ๐—ฒ๐—ฟ๐—ฎ "๐——๐—ฒ๐˜ƒ ๐—ฃ๐—ฒ๐—ฟ๐˜€๐—ผ๐—ป๐—ฎ๐—น" ๐—ผ "๐——๐—ฒ๐˜ƒ ๐—–๐—ผ๐—ฟ๐—ฝ๐—ผ๐—ฟ๐—ฎ๐˜๐—ถ๐˜ƒ๐—ผ".ย Y estaba usando la identidad equivocada.

๐˜š๐˜ถ๐˜ฆ๐˜ฏ๐˜ข ๐˜ง๐˜ข๐˜ฎ๐˜ช๐˜ญ๐˜ช๐˜ข๐˜ณ?ย ๐Ÿฅฒ

Si alguna vez has:
โ— Trabajado en una startup y tenido tu proyecto personal ๐Ÿ 
โ— Sido contratista para mรบltiples clientes ๐Ÿ’ผ
โ— Entrado a una empresa que te exige cuenta corporativa de GitHub ๐Ÿข
โ— Tenido que hacer un commit urgente desde tu laptop personal ๐Ÿ”ฅ

...este post es para ti.


๐Ÿ“–ย ๐—Ÿ๐—ฎ ๐—›๐—ถ๐˜€๐˜๐—ผ๐—ฟ๐—ถ๐—ฎ ๐—ฅ๐—ฒ๐—ฎ๐—น: ๐—–รณ๐—บ๐—ผ ๐˜‚๐—ป๐—ฎ ๐—˜๐—บ๐—ฝ๐—ฟ๐—ฒ๐˜€๐—ฎ ๐—–๐—ฎ๐˜€๐—ถ ๐—ฃ๐—ถ๐—ฒ๐—ฟ๐—ฑ๐—ฒ ๐˜‚๐—ป ๐—–๐—น๐—ถ๐—ฒ๐—ป๐˜๐—ฒ ๐—ฝ๐—ผ๐—ฟ ๐—ฆ๐—ฆ๐—›-๐—ž๐—ฒ๐˜†๐˜€ ๐— ๐—ฎ๐—น ๐—–๐—ผ๐—ป๐—ณ๐—ถ๐—ด๐˜‚๐—ฟ๐—ฎ๐—ฑ๐—ฎ๐˜€

Trabajo enย ๐—ง๐—ฒ๐—ฐ๐—ต๐—–๐—ผ๐—ฟ๐—ฝ, una consultora que maneja proyectos para 15+ clientes diferentes. Cada cliente requiere:

โ— Cuenta separada de GitHub ๐Ÿ”
โ— SSH-keys diferentes ๐Ÿ—๏ธ
โ— Repos privados aislados ๐Ÿ“ฆ

๐—˜๐—น ๐—ฐ๐—ฎ๐—ผ๐˜€ ๐—ฑ๐—ถ๐—ฎ๐—ฟ๐—ถ๐—ผ:
โ— Devs haciendo commits con identidad equivocada ๐Ÿ˜ฑ
โ— CI/CD pipelines fallando por permisos ๐Ÿ”ฅ
โ— 3 horas semanales de soporte tรฉcnico resolviendo estos problemas โฐ

๐—˜๐—น ๐—ฐ๐—ผ๐˜€๐˜๐—ผ:ย $15,000 USD/aรฑo en productividad perdida. ๐Ÿ’ธ

mul-keys

๐ŸŽฏ La Soluciรณn que Cambiรณ Todo: Multi-SSH Keys como un Pro

Paso 1: El Diagnรณstico (Entendiendo el Problema)

ยฟ๐—ค๐˜‚รฉ ๐—ธ๐—ฒ๐˜†๐˜€ ๐˜๐—ถ๐—ฒ๐—ป๐—ฒ๐˜€ ๐—ฎ๐—ฐ๐˜๐˜‚๐—ฎ๐—น๐—บ๐—ฒ๐—ป๐˜๐—ฒ?

ls -la ~/.ssh/
Enter fullscreen mode Exit fullscreen mode

ยฟ๐—ค๐˜‚รฉ ๐˜‚๐˜€๐˜‚๐—ฎ๐—ฟ๐—ถ๐—ผ ๐—ฒ๐˜€๐˜รก ๐˜‚๐˜€๐—ฎ๐—ป๐—ฑ๐—ผ ๐—š๐—ถ๐˜ ๐—ฎ๐—ต๐—ผ๐—ฟ๐—ฎ?

git config user.email
Enter fullscreen mode Exit fullscreen mode

Paso 2: La Cirugรญa - Crear Keys Separadas

# ๐—ž๐—ฒ๐˜† ๐—ฝ๐—ฒ๐—ฟ๐˜€๐—ผ๐—ป๐—ฎ๐—น (๐—น๐—ฎ ๐—พ๐˜‚๐—ฒ ๐˜†๐—ฎ ๐˜๐—ถ๐—ฒ๐—ป๐—ฒ๐˜€)
~/.ssh/id_rsa
Enter fullscreen mode Exit fullscreen mode
# ๐—ž๐—ฒ๐˜† ๐—ฝ๐—ฎ๐—ฟ๐—ฎ ๐—ฒ๐—น ๐˜๐—ฟ๐—ฎ๐—ฏ๐—ฎ๐—ท๐—ผ ๐—ฒ๐—ป ๐—™๐—ถ๐—ป๐—ง๐—ฒ๐—ฐ๐—ต๐—–๐—ผ๐—ฟ๐—ฝ
ssh-keygen -t rsa -b 4096 -C "tu@fintechcorp.com" -f ~/.ssh/fintech_rsa
Enter fullscreen mode Exit fullscreen mode
# ๐—ž๐—ฒ๐˜† ๐—ฝ๐—ฎ๐—ฟ๐—ฎ ๐—ฒ๐—น ๐—ฐ๐—น๐—ถ๐—ฒ๐—ป๐˜๐—ฒ ๐—˜-๐—ฐ๐—ผ๐—บ๐—บ๐—ฒ๐—ฟ๐—ฐ๐—ฒ 
ssh-keygen -t rsa -b 4096 -C "tu@ecomcliente.com" -f ~/.ssh/ecom_rsa
Enter fullscreen mode Exit fullscreen mode

๐ŸŽจ Imagina que cada key es una llave fรญsica diferente para oficinas distintas.

Paso 3: El Archivo Mรกgico (~/.ssh/config)

# ๐Ÿ‘ค ๐—ฌ๐—ข (๐—ฃ๐—ฒ๐—ฟ๐˜€๐—ผ๐—ป๐—ฎ๐—น) - ๐— ๐—ถ ๐—ถ๐—ฑ๐—ฒ๐—ป๐˜๐—ถ๐—ฑ๐—ฎ๐—ฑ ๐˜€๐—ฒ๐—ฐ๐—ฟ๐—ฒ๐˜๐—ฎ
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_rsa
  AddKeysToAgent yes

# ๐Ÿ’ผ ๐—™๐—ถ๐—ป๐—ง๐—ฒ๐—ฐ๐—ต๐—–๐—ผ๐—ฟ๐—ฝ - ๐— ๐—ถ ๐˜†๐—ผ ๐—ฐ๐—ผ๐—ฟ๐—ฝ๐—ผ๐—ฟ๐—ฎ๐˜๐—ถ๐˜ƒ๐—ผ
Host github.com-fintech
  HostName github.com
  User git
  IdentityFile ~/.ssh/fintech_rsa
  AddKeysToAgent yes

# ๐Ÿ›’ ๐—˜๐—ฐ๐—ผ๐—บ๐—–๐—น๐—ถ๐—ฒ๐—ป๐˜๐—ฒ - ๐—˜๐—น ๐—ฝ๐—ฟ๐—ผ๐˜†๐—ฒ๐—ฐ๐˜๐—ผ ๐—พ๐˜‚๐—ฒ ๐—ฝ๐—ฎ๐—ด๐—ฎ ๐—น๐—ฎ๐˜€ ๐˜ƒ๐—ฎ๐—ฐ๐—ฎ๐—ฐ๐—ถ๐—ผ๐—ป๐—ฒ๐˜€
Host github.com-ecom
  HostName github.com
  User git
  IdentityFile ~/.ssh/ecom_rsa
  AddKeysToAgent yes
Enter fullscreen mode Exit fullscreen mode

๐Ÿ’ก Tip Pro: Piensa en esto como rutas de enrutamiento en una red compleja - cada host alias dirige el trรกfico al destino correcto con las credenciales apropiadas.

๐Ÿ”‘ Paso 4: El Registro en GitHub (El Paso que Nadie Debe Saltarse)

4.1 Copia tu llave pรบblica al portapapeles

# Para macOS (pbcopy)
cat ~/.ssh/ecom_rsa.pub | pbcopy

# Para Linux (xclip)
cat ~/.ssh/ecom_rsa.pub | xclip -selection clipboard

# Para Windows (PowerShell)
Get-Content ~/.ssh/ecom_rsa.pub | Set-Clipboard
Enter fullscreen mode Exit fullscreen mode

4.๐Ÿฎ ๐—”๐—ด๐—ฟรฉ๐—ด๐—ฎ๐—น๐—ฎ ๐—ฎ ๐˜๐˜‚ ๐—ฐ๐˜‚๐—ฒ๐—ป๐˜๐—ฎ ๐—ฑ๐—ฒ ๐—š๐—ถ๐˜๐—›๐˜‚๐—ฏ

  1. Ve aย ๐—š๐—ถ๐˜๐—›๐˜‚๐—ฏ.๐—ฐ๐—ผ๐—บ (๐—ต๐˜๐˜๐—ฝ๐˜€://๐—ด๐—ถ๐˜๐—ต๐˜‚๐—ฏ.๐—ฐ๐—ผ๐—บ/)ย โ†’ย ๐—ฆ๐—ฒ๐˜๐˜๐—ถ๐—ป๐—ด๐˜€ย (tu foto de perfil) โš™๏ธ
  2. En el menรบ lateral, haz clic enย "๐—ฆ๐—ฆ๐—› ๐—ฎ๐—ป๐—ฑ ๐—š๐—ฃ๐—š ๐—ธ๐—ฒ๐˜†๐˜€"ย ๐Ÿ”‘
  3. Haz clic en el botรณn verdeย "๐—ก๐—ฒ๐˜„ ๐—ฆ๐—ฆ๐—› ๐—ธ๐—ฒ๐˜†"ย oย "๐—”๐—ฑ๐—ฑ ๐—ฆ๐—ฆ๐—› ๐—ธ๐—ฒ๐˜†"ย โž•
  4. En el formulario:
  • ๐—ง๐—ถ๐˜๐—น๐—ฒ: Un nombre descriptivo (ej: "MacBook Pro Work", "Personal Laptop", "Franco - Work")
  • ๐—ž๐—ฒ๐˜† ๐˜๐˜†๐—ฝ๐—ฒ: "Authentication Key" (mantรฉn el default)
  • ๐—ž๐—ฒ๐˜†: Pega el contenido de tu portapapeles (la llave pรบblica)
  1. Haz clic enย "๐—”๐—ฑ๐—ฑ ๐—ฆ๐—ฆ๐—› ๐—ธ๐—ฒ๐˜†"ย โœ…

github-ssh

Paso 5: El Truco del Clonado Inteligente

โŒ ๐—”๐—ป๐˜๐—ฒ๐˜€ (๐—ณ๐—ฎ๐—น๐—น๐—ฎ๐—ฏ๐—ฎ ๐˜€๐—ถ๐—ฒ๐—บ๐—ฝ๐—ฟ๐—ฒ)
git clone git@github.com:fintechcorp/proyecto-secreto.git

โœ… ๐——๐—ฒ๐˜€๐—ฝ๐˜‚รฉ๐˜€ (๐—ณ๐˜‚๐—ป๐—ฐ๐—ถ๐—ผ๐—ป๐—ฎ ๐—ฝ๐—ฒ๐—ฟ๐—ณ๐—ฒ๐—ฐ๐˜๐—ผ)
git clone git@github.com-fintech:fintechcorp/proyecto-secreto.git
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“Šย ๐—ฅ๐—ฒ๐˜€๐˜‚๐—น๐˜๐—ฎ๐—ฑ๐—ผ๐˜€ ๐—ฅ๐—ฒ๐—ฎ๐—น๐—ฒ๐˜€ ๐—ฒ๐—ป ๐—บ๐—ถ ๐—˜๐—บ๐—ฝ๐—ฟ๐—ฒ๐˜€๐—ฎ (๐— รฉ๐˜๐—ฟ๐—ถ๐—ฐ๐—ฎ ๐—พ๐˜‚๐—ฒ ๐—œ๐—บ๐—ฝ๐—ผ๐—ฟ๐˜๐—ฎ)

๐—”๐—ป๐˜๐—ฒ๐˜€ ๐—ฑ๐—ฒ ๐—น๐—ฎ ๐—ถ๐—บ๐—ฝ๐—น๐—ฒ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—ฐ๐—ถรณ๐—ป (๐—˜๐—ป๐—ฒ ๐Ÿฎ๐Ÿฌ๐Ÿฎ๐Ÿฑ):
๐Ÿ”ด 12 incidentes/mes por credenciales incorrectas
๐Ÿ”ด 8 horas/mes de soporte DevOps
๐Ÿ”ด 3 devs frustrados renunciaron (ok, esto no fue solo por SSH, pero ayudรณ)

๐——๐—ฒ๐˜€๐—ฝ๐˜‚รฉ๐˜€ (๐—๐˜‚๐—ป ๐Ÿฎ๐Ÿฌ๐Ÿฎ๐Ÿฑ):
๐ŸŸข 0 incidentes por credenciales
๐ŸŸข 0 horas de soporte (autogestionado)
๐ŸŸข Devs pueden cambiar de contexto en <1 minuto

๐—œ๐—บ๐—ฝ๐—ฎ๐—ฐ๐˜๐—ผ ๐—ณ๐—ถ๐—ป๐—ฎ๐—ป๐—ฐ๐—ถ๐—ฒ๐—ฟ๐—ผ:

"๐˜ˆ๐˜ฉ๐˜ฐ๐˜ณ๐˜ณ๐˜ข๐˜ฎ๐˜ฐ๐˜ด $12,000 ๐˜ข๐˜ญ ๐˜ขรฑ๐˜ฐ ๐˜ด๐˜ฐ๐˜ญ๐˜ฐ ๐˜ฆ๐˜ฏ ๐˜ต๐˜ช๐˜ฆ๐˜ฎ๐˜ฑ๐˜ฐ ๐˜ฅ๐˜ฆ ๐˜ต๐˜ณ๐˜ฐ๐˜ถ๐˜ฃ๐˜ญ๐˜ฆ๐˜ด๐˜ฉ๐˜ฐ๐˜ฐ๐˜ต๐˜ช๐˜ฏ๐˜จ"ย - ๐˜Š๐˜›๐˜– ๐˜ฅ๐˜ฆ ๐˜›๐˜ฆ๐˜ค๐˜ฉ๐˜Š๐˜ฐ๐˜ณ๐˜ฑ

๐ŸŽฎ Bonus: El Debugging Mode (Cuando Algo Sale Mal)

Comandos de Diagnรณstico Rรกpido:

# ยฟ๐—ค๐˜‚รฉ ๐—ธ๐—ฒ๐˜† ๐—ฒ๐˜€๐˜รก ๐˜‚๐˜€๐—ฎ๐—ป๐—ฑ๐—ผ ๐—ฆ๐—ฆ๐—›?
ssh -T git@github.com-fintech
Enter fullscreen mode Exit fullscreen mode

๐——๐—ฒ๐—ฏ๐—ฒ๐—ฟรญ๐—ฎ๐˜€ ๐˜ƒ๐—ฒ๐—ฟ: "๐—›๐—ถ @๐˜‚๐˜€๐˜‚๐—ฎ๐—ฟ๐—ถ๐—ผ-๐—ณ๐—ถ๐—ป๐˜๐—ฒ๐—ฐ๐—ต! ๐—ฌ๐—ผ๐˜‚'๐˜ƒ๐—ฒ ๐˜€๐˜‚๐—ฐ๐—ฐ๐—ฒ๐˜€๐˜€๐—ณ๐˜‚๐—น๐—น๐˜† ๐—ฎ๐˜‚๐˜๐—ต๐—ฒ๐—ป๐˜๐—ถ๐—ฐ๐—ฎ๐˜๐—ฒ๐—ฑ..."

# ยฟ๐—ค๐˜‚รฉ ๐˜‚๐˜€๐˜‚๐—ฎ๐—ฟ๐—ถ๐—ผ ๐˜๐—ถ๐—ฒ๐—ป๐—ฒ ๐—š๐—ถ๐˜ ๐—ฐ๐—ผ๐—ป๐—ณ๐—ถ๐—ด๐˜‚๐—ฟ๐—ฎ๐—ฑ๐—ผ?
cat .git/config | grep email
Enter fullscreen mode Exit fullscreen mode
# ๐—ฉ๐—ฒ๐—ฟ ๐˜๐—ผ๐—ฑ๐—ฎ๐˜€ ๐—น๐—ฎ๐˜€ ๐—ธ๐—ฒ๐˜†๐˜€ ๐—ฐ๐—ฎ๐—ฟ๐—ด๐—ฎ๐—ฑ๐—ฎ๐˜€
ssh-add -l
Enter fullscreen mode Exit fullscreen mode
# ๐—ง๐—ฒ๐˜€๐˜ ๐—ฑ๐—ฒ ๐—ฐ๐—ผ๐—ป๐—ฒ๐˜…๐—ถรณ๐—ป ๐˜ƒ๐—ฒ๐—ฟ๐—ฏ๐—ผ๐˜€๐—ฒ (๐—ฐ๐˜‚๐—ฎ๐—ป๐—ฑ๐—ผ ๐˜๐—ผ๐—ฑ๐—ผ ๐—ณ๐—ฎ๐—น๐—น๐—ฎ)
ssh -vT git@github.com-fintech
Enter fullscreen mode Exit fullscreen mode
# ๐Ÿ”ฅ LIMPIAR TODO Y EMPEZAR DE CERO (cuando hay caos)
ssh-add -D
# Esto elimina TODAS las llaves del agente SSH
# รštil cuando tienes conflictos de keys o credenciales mezcladas
Enter fullscreen mode Exit fullscreen mode

Errores Comunes y Soluciones:

Error Causa Soluciรณn Mรกgica
Permission denied Key incorrecta Verifica ~/.ssh/config
Could not open connection Alias mal escrito github.com-empresa vs github.com_empresa
User email incorrecto Git local mal config git config user.email

๐Ÿงญ ยฟY si trabajamos juntos?

Este proyecto es una base.En CrossCloudX, diseรฑamos pipelines a la medida para empresas financieras, consultoras o startups con visiรณn.
ยฟTe interesa un piloto en tu empresa?

๐Ÿค Let's Connect!

If you find this repository useful and want to see more content like this, follow me on LinkedIn to stay updated on more projects and resources!

LinkedIn

If youโ€™d like to support my work, you can buy me a coffee. Thank you for your support!

BuyMeACoffee

Thank you for reading! ๐Ÿ˜Š

Top comments (0)