Llave SSH en Github

Este documento explica paso a paso cómo generar una nueva clave SSH, asociarla a una cuenta de GitHub (por ejemplo, una cuenta secundaria) y configurar tu entorno para poder subir cualquier proyecto a un repositorio remoto usando SSH.



Crea una clave ed25519 (recomendada)

ssh-keygen -t ed25519 -C "tuemail@ejemplo.com"

Cuando te pregunte dónde guardarla, usa un nombre descriptivo para esa cuenta:

Ejemplo:

Enter file in which to save the key (/home/usuario/.ssh/id_ed25519): /home/usuario/.ssh/id_ed25519_github_cuenta2

Esto generará:

  • Clave privada: ~/.ssh/id_ed25519_github_cuenta2
  • Clave pública: ~/.ssh/id_ed25519_github_cuenta2.pub

Opcional: puedes poner passphrase (recomendado si es un equipo compartido).


Inicia el agente (si no está activo):

ssh-add ~/.ssh/id_ed25519_github_cuenta2

Muestra la clave pública:

cat ~/.ssh/id_ed25519_github_cuenta2.pub

Copia todo el contenido.


  1. Inicia sesión en GitHub con la cuenta que quieras usar.
  2. Ve a: Settings → SSH and GPG keys
  3. Pulsa New SSH key
    • Title: un nombre claro (ej. “Laptop cuenta2” o “SSH trabajo”)
    • Key: pega la clave pública copiada
  4. Pulsa Add SSH key

Edita (o crea) el archivo:

nano ~/.ssh/config

Añade una entrada con un alias (hostname lógico) para esa cuenta:

Host github-cuenta2
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_github_cuenta2
  IdentitiesOnly yes

Host github-cuenta2 es un alias que tú eliges. Sirve para distinguir cuentas.


Prueba la conexión con el alias:

ssh -T git@github-cuenta2

Si todo está correcto, verás algo similar a:

Hi TU_USUARIO! You've successfully authenticated, but GitHub does not provide shell access.

Entra en la carpeta del proyecto:

cd /ruta/a/tu/proyecto

Si el proyecto aún no tiene Git:

git init

Configura el usuario solo para este repositorio (útil si manejas varias cuentas):

git config user.name "Tu Nombre"
git config user.email "tuemail@ejemplo.com"

Verifica:

git config --get user.name
git config --get user.email

Añade el remote usando el alias del ~/.ssh/config:

git remote add origin git@github-cuenta2:TU_USUARIO/TU_REPO.git

Ejemplo:

  • Usuario: miusuario2
  • Repo: mi-proyecto

Quedaría:

git remote -v

Comprueba:

git remote -v

git add .
git commit -m "chore: primer commit"
git push -u origin main

Si tu repo usa master en vez de main, cambia main por master.


Ya tienes:

  • Una clave SSH dedicada a una cuenta concreta
  • Un alias en ~/.ssh/config para distinguirla
  • El proyecto enlazado a GitHub por SSH
  • Capacidad de hacer push/pull sin líos de credenciales

Si añadiste el remote con el host equivocado:

git remote set-url origin git@github-cuenta2:TU_USUARIO/TU_REPO.git