Tema 12: Git y autenticación SSH
SSH permite demostrar tu identidad al conectarte a un servicio sin enviar tu contraseña en cada operación. Usa un par de claves: una pública, que registras en tu cuenta, y una privada, que conservas en tu equipo. La clave privada no se sube a GitHub ni al repositorio.
En una terminal real, ssh-keygen -t ed25519 propone crear el par. Lee la ruta sugerida y no sobrescribas una clave existente sin saber qué uso tiene. Puedes proteger la privada con una frase de paso. Esa frase protege el archivo de clave; no es tu contraseña del servicio.
El laboratorio no genera claves reales ni toca tu ordenador. Simula el comando y muestra una pública ficticia. Después pulsa «Registrar clave pública», que representa la acción de añadirla en la configuración de tu cuenta. Por último, ssh -T git@github.com comprueba la autenticación simulada.
En GitHub real, una autenticación correcta puede mostrar que el servicio no ofrece acceso shell: eso no implica un fallo de Git. En la primera conexión, comprueba la huella del servidor con la documentación oficial antes de aceptar su identidad. No confundas la clave del servidor con tu clave pública.
Una URL SSH tiene un formato como git@github.com:equipo/proyecto.git. Puedes cambiar origin con remote set-url y consultarlo con get-url, que ya conoces del tema 8. El nombre y correo del tema 1 siguen definiendo autoría; SSH define acceso.
Práctica real opcional: genera o reutiliza de forma consciente tu clave, registra solo la pública en tu cuenta, comprueba la conexión y cambia la URL de un repositorio propio. Consulta la guía oficial de SSH de GitHub para los pasos específicos de tu sistema. La puntuación del curso depende únicamente del laboratorio local.
Comandos para probar #
1ssh-keygen -t ed25519 2ssh -T git@github.com 3git remote set-url origin git@github.com:equipo/proyecto.git 4git remote get-url origin
Error que conviene evitar #
Subir la clave privada, pegarla en el repositorio o confundir user.email con autenticación. En el laboratorio todos los datos de acceso son ficticios.
Laboratorio local #
Prueba los comandos y observa qué cambia. Puedes reiniciar sin guardar una entrega. Los retos evaluables y el cuestionario están en las actividades de este tema.
Git / práctica local
Autenticación ficticia
Acciones de GitHub simulado
Estas acciones solo cambian el laboratorio; no contactan con GitHub.
Aplicar edición cambia el archivo; git add lo prepara.
Historial de commits
Cada punto representa una versión guardada.
- 0000001: Commit inicial; HEAD → main · origin/main
Comparar trabajo, índice y HEAD
Trabajo
# Mi proyecto
Índice (staging)
# Mi proyecto
HEAD
# Mi proyecto
TERMINAL
Sesión local preparada. Escribe help para consultar los comandos de este tema.
Comandos disponibles y límites
git --version · git config --global <clave> [valor] git init · git status git add <archivo | .> · git commit -m "mensaje" · git log git log --oneline · git switch <rama> (antes: checkout) git restore [--staged] <archivo> · git commit --amend [-m "mensaje" | --no-edit] git switch --detach <commit> · HEAD · HEAD~1 git diff [--staged | <commit> <commit>] git remote [-v] · git remote add <nombre> <URL> · git remote get-url <nombre> · git remote set-url <nombre> <URL> git clone <URL> git push [-u] <remoto> <rama> ssh-keygen -t ed25519 · ssh -T git@github.com (ficticios) help · clear
Sesión en memoria: recargar descarta la práctica. Doscientas acciones como máximo. Dos archivos editables de hasta 250 líneas. El modelo no ejecuta comandos reales ni realiza conexiones externas. diff muestra contenido anterior y posterior por archivo.
Resumen
- La privada debe permanecer en tu equipo.
- No sustituye ni representa la contraseña del servicio.
- El laboratorio reproduce ese comando sin crear un archivo real.
- Subir la clave privada, pegarla en el repositorio o confundir user.email con autenticación. En el laboratorio todos los datos de acceso son ficticios.