Saltar a contenido

Práctica 1.7: Acceso ssh a github

P7 - Autenticación SSH con Git y GitHub

En P4 conectaste un proyecto con GitHub por HTTPS. Aquí configurarás una clave SSH para autenticarte sin introducir una contraseña en cada operación. La clave pública se comparte con GitHub; la privada nunca se comparte ni se sube al repositorio.

1. Objetivos

  • Comprobar si existe una clave SSH y generar una ed25519 si hace falta.
  • Proteger la clave privada y cargarla en el agente SSH.
  • Registrar la clave pública en GitHub y verificar la conexión.
  • Cambiar el remoto de un repositorio de HTTPS a SSH.

2. Relación con RA1 y criterios de evaluación

Esta práctica apoya el RA1, especialmente CE b y CE c, porque facilita trabajar con el proyecto creado en el IDE y su repositorio. SSH y GitHub son herramientas instrumentales; no se inventa una equivalencia con otro RA ni con un CE distinto.

3. Pasos a seguir

3.1. Comprobar o generar la clave

  1. Abre una terminal (Git Bash en Windows) y lista el contenido de .ssh:
ls -al ~/.ssh

Si existe id_ed25519.pub o una clave con otro nombre, puedes reutilizarla. En los pasos siguientes sustituye ~/.ssh/id_ed25519 por la ruta de esa clave cuando tenga otro nombre. 2. Si no existe una clave, genera una nueva con un comentario neutro:

ssh-keygen -t ed25519 -C "tu-correo@example.com"

Acepta la ruta propuesta o elige una ruta propia. Usa una frase de paso robusta; no la escribas en el documento ni compartas la clave privada.

!!! danger "Nunca compartas la clave privada" Comparte únicamente el archivo .pub. No publiques ni envíes id_ed25519, capturas donde se vea su contenido o una frase de paso.

3.2. Cargar la clave en el agente

En Linux y macOS (y también en Git Bash para Windows):

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

En Windows PowerShell, inicia el servicio del agente si está disponible y añade la clave:

Get-Service ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent
ssh-add $HOME\.ssh\id_ed25519

Si usaste otro nombre, sustituye la ruta. No borres ni sobrescribas claves existentes sin verificar antes cuál utiliza cada repositorio. Si el servicio no está disponible, utiliza Git Bash o sigue la documentación de Git for Windows.

3.3. Registrar la clave pública en GitHub

  1. Muestra solo la clave pública:
cat ~/.ssh/id_ed25519.pub

En PowerShell puedes usar Get-Content $HOME\.ssh\id_ed25519.pub. 2. Copia la línea completa y ve a GitHub > Settings > SSH and GPG keys > New SSH key. Pon un título descriptivo del dispositivo, pega la clave y confirma.

3.4. Verificar y usar el remoto SSH

  1. Comprueba la conexión:
ssh -T git@github.com

En la primera conexión verifica la huella de GitHub siguiendo su documentación oficial antes de responder yes. No fijes una dirección IP en el material: puede cambiar. El mensaje esperado indica autenticación correcta y que GitHub no ofrece acceso a una shell. 2. En el repositorio de P4 revisa el remoto y cámbialo usando marcadores:

git remote -v
git remote set-url origin git@github.com:TU_USUARIO/TU_REPOSITORIO.git
git remote -v
  1. Crea un cambio inocuo, confírmalo y prueba git push. No incluyas claves, tokens ni información personal en el commit.

4. Comprobaciones de finalización

  • La clave privada permanece fuera del repositorio y protegida.
  • GitHub muestra una clave pública asociada al dispositivo.
  • ssh -T git@github.com confirma la autenticación.
  • git remote -v usa git@github.com y una prueba de push funciona.

5. Ejercicios y entregables

  1. Documenta, sin copiar secretos, qué sistema operativo y terminal has usado.
  2. Cambia un repositorio de prueba de HTTPS a SSH y realiza un push.
  3. Entrega la URL del repositorio y capturas de ssh -T y git remote -v, ocultando correos, nombres de usuario si el centro lo requiere y cualquier material privado.

Fuentes y referencias