---
title: "Cómo vincular GitHub con una clave SSH en macOS o Linux"
description: "Un tutorial que puedes seguir para crear tu primer repositorio de GitHub y vincularlo por SSH a tu portátil."
date: 2022-10-07
categories: ["web-development"]
tags: ["git"]
---

import { Picture } from "astro:assets";
import githubssh1 from "@assets/images/2210/github_ssh_key.jpeg";
import githubssh2 from "@assets/images/2210/github_add_ssh_key.jpeg";
import githubssh3 from "@assets/images/2210/create_repo.jpeg";
import YouTubeEmbed from "@components/widgets/YouTubeEmbed.astro";

GitHub usa claves SSH para autenticar tu equipo, de modo que puedas hacer push, pull y clonar repositorios sin escribir tu contraseña cada vez. Esta guía te lleva paso a paso por la generación de una clave SSH en macOS o Linux, cómo añadirla a tu cuenta de GitHub y cómo hacer push de tu primer repositorio.

## Generar una clave SSH

Abre una terminal y ejecuta:

```bash
ssh-keygen -t ed25519 -C "your_email@example.com"
```

Sustituye `your_email@example.com` por el correo asociado a tu cuenta de GitHub. La opción `-C` es solo una etiqueta (un comentario): no afecta a la seguridad de la clave.

Cuando te lo pida, pulsa Enter para aceptar la ubicación por defecto del archivo (`~/.ssh/id_ed25519`). Después se te pedirá una frase de contraseña (passphrase). **Pon una.** Protege la clave privada si tu equipo se pierde o queda comprometido. El ssh-agent se encargará de ella para que no tengas que escribirla cada vez.

Si estás en un sistema antiguo que no soporta ed25519 (poco probable en 2025 o posterior, pero posible), usa RSA como alternativa:

```bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
```

**¿Por qué ed25519 en lugar de RSA?** Las claves Ed25519 son más cortas, más rápidas de generar y criptográficamente equivalentes a una clave RSA de 4096 bits. GitHub recomienda ed25519 como opción por defecto.

## Iniciar ssh-agent y añadir tu clave

### macOS

Inicia el agente y añade tu clave:

```bash
eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
```

Después, configura SSH para cargar las claves automáticamente en el agente y guardar la frase de contraseña en tu llavero. Crea o edita `~/.ssh/config`:

```bash
touch ~/.ssh/config
```

Añade estas líneas:

```
Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519
```

Si no pusiste una frase de contraseña, omite la línea `UseKeychain`. Si obtienes el error `Bad configuration option: usekeychain`, añade `IgnoreUnknown UseKeychain` en una línea aparte dentro del mismo bloque `Host`.

### Linux

Inicia el agente y añade tu clave:

```bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
```

En la mayoría de las distribuciones Linux modernas (Ubuntu 22.04+, Fedora, etc.), el ssh-agent se inicia automáticamente con tu sesión de escritorio. Si `ssh-add` muestra «Could not open a connection to your authentication agent», ejecuta primero el comando `eval` de arriba.

## Añadir la clave SSH a GitHub

Copia la clave pública en el portapapeles:

```bash
# macOS
pbcopy < ~/.ssh/id_ed25519.pub

# Linux (con xclip)
xclip -selection clipboard < ~/.ssh/id_ed25519.pub

# Linux (sin xclip: solo muestra la clave; cópiala a mano)
cat ~/.ssh/id_ed25519.pub
```

Luego ve a GitHub:

1. Haz clic en tu foto de perfil (arriba a la derecha) → **Settings**.
2. En la barra lateral izquierda, dentro de «Access», haz clic en **SSH and GPG keys**.
3. Haz clic en **New SSH key**.
4. Ponle un título (p. ej., «Portátil personal» o «MacBook del trabajo»).
5. Pega la clave pública en el campo **Key**.
6. Haz clic en **Add SSH key**.

<Picture formats={["webp"]} fallbackFormat="webp"
  src={githubssh1}
  alt="Página de configuración de claves SSH en GitHub"
/>

<Picture formats={["webp"]} fallbackFormat="webp"
  src={githubssh2}
  alt="Añadiendo una clave SSH a GitHub"
/>

## Probar la conexión

```bash
ssh -T git@github.com
```

Deberías ver:

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

Si obtienes el error «Permission denied», comprueba que la clave se añadió correctamente y que el ssh-agent la tiene cargada (`ssh-add -l` lista las claves cargadas).

## Vídeo paso a paso en YouTube

<YouTubeEmbed
  url="https://www.youtube.com/embed/aGWACCA2Kcg"
  label="Vincular GitHub con una clave SSH en macOS o Linux"
/>

## Crear un repositorio y hacer push desde tu equipo

Ahora que SSH está configurado, puedes crear un repositorio en GitHub y subir código a él.

### Crear el repositorio en GitHub

En GitHub, haz clic en el icono **+** (arriba a la derecha) → **New repository**. Rellena:

- **Repository name**: el que quieras (p. ej., `test-repo`).
- **Description**: opcional.
- **Private o Public**: tú eliges.

Haz clic en **Create repository**.

<Picture formats={["webp"]} fallbackFormat="webp"
  src={githubssh3}
  alt="Creando un nuevo repositorio en GitHub"
/>

### Hacer push desde la terminal

Asegúrate de que git está instalado:

```bash
# macOS
brew install git

# Ubuntu/Debian
sudo apt install git -y
```

Después, inicializa el repositorio y súbelo:

```bash
# Crear el directorio del proyecto y entrar en él
mkdir test-repo && cd test-repo

# Inicializar el repositorio git
git init

# Crear un archivo
echo "# test-repo" >> README.md

# Preparar, confirmar y subir los cambios
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin git@github.com:yourusername/test-repo.git
git push -u origin main
```

Sustituye `yourusername` por tu nombre de usuario real de GitHub.

### Clonar un repositorio existente

```bash
git clone git@github.com:yourusername/some-repo.git
```

Después de clonar, haz tus cambios, confirma (commit) y sube (push) como de costumbre.

## Resumen de los archivos SSH

| Archivo | Qué es |
|---------|--------|
| `~/.ssh/id_ed25519` | Tu clave privada. No la compartas nunca. |
| `~/.ssh/id_ed25519.pub` | Tu clave pública. Esta es la que va en GitHub. |
| `~/.ssh/config` | Configuración del cliente SSH (opcional, pero útil en macOS). |

La clave privada se queda en tu equipo. La clave pública se puede añadir a tantas cuentas de GitHub o servidores como necesites. Si configuras una máquina nueva, genera un par de claves nuevo y añade la pública a GitHub: no copies la clave privada entre máquinas.