Aprende conmigo / Redes por dentro / 01

Tu clave privada no viaja.

Cómo SSH conecta dos computadoras, comprueba sus identidades y protege lo que se dicen.

Por Pedro Hernández · PeopleWorksOctubre de 2026Lectura y práctica: 13–16 min

Portada SSH: una clave privada permanece en una computadora mientras un canal protegido la conecta con un servidor.
Aprende conmigo · Una mirada al interior de una conexión SSH. Ilustración conceptual creada para PeopleWorks.

00 / Si estás empezando

Primero: ¿qué es SSH
y para qué te sirve?

SSH es un protocolo para conectarte a otra computadora por una red y trabajar en ella mediante una comunicación protegida.

Un protocolo es un conjunto de reglas que dos equipos siguen para entenderse. SSH significa Secure Shell. Uno de sus usos más comunes es abrir una terminal remota: una ventana donde escribes instrucciones que se ejecutan en el otro equipo.

Un ejemplo cercano. Tienes una página web en un servidor y quieres consultar los archivos de tu proyecto. Desde tu computadora abres una terminal, te conectas con SSH y trabajas en ese servidor. Tu teclado está aquí; los comandos se ejecutan allá.

Se utiliza para administrar servidores, ejecutar tareas en equipos remotos y, con herramientas como SFTP, transferir archivos sobre una conexión SSH. SSH nombra el protocolo; OpenSSH es una implementación que proporciona programas para usarlo.

¿Qué necesitas para seguir este artículo?

Para recorrer los dibujos y los laboratorios, basta con tu navegador. Para repetir después los comandos, necesitarás un cliente SSH y una cuenta autorizada en un servidor de práctica. En la sección de práctica encontrarás los pasos y requisitos.

Con esa idea en mente, ahora abriremos la conexión por dentro: cómo reconoce al servidor, cómo comprueba que puedes entrar y cómo protege los datos. Si ya utilizas SSH, puedes ir directamente al recorrido interactivo.

Fuentes: OpenSSH: acceso y ejecución remota · SFTP: transferencia sobre SSH · Proyecto OpenSSH.

01 / El punto de partida

La terminal está aquí.
El trabajo ocurre allá.

Veamos la orden que pone todo en marcha. Detrás de ella hay un cliente que solicita acceso y un servidor que recibe la conexión.

En tu equipo, el programa ssh actúa como cliente. En el equipo remoto, un servicio como sshd atiende la solicitud. Estos dos papeles nos acompañarán durante todo el recorrido.

Comando ilustrativo
ssh alumno@servidor.example

alumno es la cuenta remota. servidor.example es un nombre de ejemplo que sustituirías por la dirección de tu laboratorio. Llegar a esa dirección es solo el comienzo: todavía necesitamos establecer confianza.

Antes de controlar otra computadora, hay que saber con quién estamos hablando.

Fuentes: OpenSSH: cliente y ejecución remota · OpenSSH: servicio del servidor.

02 / Abre el protocolo

Una conexión, cinco momentos.

SSH organiza el trabajo en transporte protegido, autenticación del usuario y canales de comunicación. En el recorrido separamos cinco momentos para verlos con calma. La comprobación del servidor forma parte del establecimiento criptográfico.

RECORRIDO / SIMULACIÓN DIDÁCTICA

Sigue lo que cruza la red

Elige una etapa. Los objetos y textos representan el protocolo; aquí no se abre ninguna conexión ni se hace criptografía real.

Cliente y servidor se conectanEl cliente inicia la conexión y ambos intercambian identificaciones y negocian algoritmos.>_Tu equipo · clienteIdentificaciones + negociaciónEl transporte aún se está estableciendoServidor · cuenta remota
TRANSPORTE: EN ESTABLECIMIENTOUSUARIO: SIN AUTENTICAR

01 · Ponerse de acuerdo

El cliente establece TCP, normalmente al puerto 22. Ambos intercambian sus identificaciones SSH y negocian algoritmos. Este inicio todavía no está cifrado con las claves de la sesión.

No se envía aquí la contraseña del usuario.

Modelo conceptual: agrupa mensajes y simplifica detalles. Cambiar de etapa reconstruye su estado; no ejecuta comandos.
Leer toda la secuencia en texto
  1. Se establece TCP y se intercambian identificaciones y preferencias criptográficas.
  2. Durante el intercambio de claves, el cliente verifica la firma del servidor y su asociación con una identidad esperada.
  3. Ambos derivan claves de tráfico por dirección. NEWKEYS señala el uso de las nuevas claves.
  4. Sobre el transporte protegido se autentica al usuario.
  5. Tras autenticarse se pueden abrir canales, como una terminal remota.

Fuentes: RFC 4251: arquitectura · RFC 4253: intercambio y NEWKEYS · RFC 4254: canales.

03 / La separación que lo aclara todo

No todas las llaves abren lo mismo.

En muchos dibujos aparece una sola llave. Esa simplificación mezcla tres funciones que conviene mantener separadas.

Clave de host

Identifica al servidor. Su privada permanece en el servidor; el cliente comprueba su firma y la confianza en su pública.

Clave de usuario

Permite demostrar posesión de una privada. El servidor verifica la firma con una pública autorizada para la cuenta.

Claves de tráfico

Protegen los datos. Se derivan durante el intercambio y tienen funciones distintas por dirección. Pueden renovarse.

Dos archivos que viven en lados distintos
Archivo habitualDóndeQué recuerda o autoriza
~/.ssh/known_hostsClienteClaves de servidores conocidos.
~/.ssh/authorized_keysCuenta del servidorPúblicas de usuario permitidas, según la configuración.

Fuentes: RFC 4251: claves de host · RFC 4252: autenticación por clave · Archivos de OpenSSH · AuthorizedKeysFile.

04 / Laboratorio de confianza

El candado necesita una identidad.

Una conexión cifrada puede llevarte al equipo equivocado si aceptas cualquier clave. Al conectar por primera vez, contrasta la huella del servidor con una referencia obtenida por un canal confiable.

LAB 01 / ¿ES EL MISMO SERVIDOR?

Compara antes de continuar

Huellas abreviadas e inventadas para el ejercicio. Cambia el caso y decide.

Referencia confiableSHA256:3f7a…91bc
Presentada por el servidorSHA256:3f7a…91bc

Si la huella guardada cambia, investiga el motivo. Puede haber una reinstalación legítima o un problema de identidad. Con StrictHostKeyChecking=ask, OpenSSH pregunta por claves nuevas y rechaza las cambiadas. La decisión depende de la comprobación, no de la prisa.

Fuente: OpenSSH: StrictHostKeyChecking.

05 / Laboratorio de autenticación

Demostrar que la tienes.
Sin entregarla.

En la autenticación por clave pública, el cliente firma datos ligados a la sesión. El servidor verifica esa firma y comprueba que la pública esté autorizada. La privada del usuario permanece en su lado.

LAB 02 / ELIGE QUÉ ENVIAR

¿Cómo entrarías con tu par de claves?

Tu equipoPrivada del usuario
ServidorPública autorizada
Simulación conceptual. No genera claves, firmas ni credenciales reales.

La contraseña también puede ser un método de SSH: se envía al servidor dentro del transporte cifrado. La frase de paso de una privada cumple otra función: proteger su archivo local. Es posible que el servidor exija más de un método.

Fuentes: RFC 4252: firma del usuario y contraseña · ssh-keygen: frase de paso local.

06 / Laboratorio de observación

¿Qué ve alguien en la red?

El contenido protegido y la existencia de una conexión son cosas distintas. Un observador puede identificar extremos, tiempos y tamaños de tráfico; eso no significa que pueda leer tus comandos.

LAB 03 / CAMBIA EL PUNTO DE VISTA

Antes y después del cifrado

INICIO / IDENTIFICACIÓN ILUSTRATIVASSH-2.0-ClienteDeEjemplo
Representación visual, no captura de paquetes ni cifrado real. Los extremos descifran el contenido que necesitan procesar.

El alcance importa. SSH protege sus canales y los reenvíos configurados. Abrir una sesión SSH no cifra automáticamente todo el tráfico de tu computadora.

Fuentes: RFC 4251: análisis de tráfico · RFC 4253: identificaciones · RFC 4254: canales y reenvíos.

07 / Ahora, en la terminal

Una práctica que puedes repetir.

Necesitas un cliente OpenSSH y una cuenta autorizada en un servidor Linux de práctica ya preparado. Aquí usamos PowerShell como terminal local. Obtén del administrador la dirección, el usuario, el puerto y la huella del servidor.

Comprueba el cliente

En tu equipo
ssh -V

Este comando consulta la versión. Si no está disponible, prepara el cliente antes de continuar.

Crea un par para el ejercicio

Abre una carpeta nueva y vacía de laboratorio. Usa un nombre que no corresponda a claves existentes.

En la carpeta del laboratorio
ssh-keygen -t ed25519 -f ./aprende_conmigo_ssh

La herramienta preguntará por una frase de paso. Obtendrás aprende_conmigo_ssh, la privada, y aprende_conmigo_ssh.pub, la pública. Si aparece una pregunta para sobrescribir, cancela y elige otro nombre.

Autoriza la pública

Entrega al administrador el contenido del archivo .pub para autorizarlo en tu cuenta del servidor de práctica. En una configuración habitual se añade a ~/.ssh/authorized_keys. La ubicación y los permisos dependen de la configuración. Conserva la privada en tu equipo.

Conecta y verifica la huella

Sustituye usuario y dirección
ssh -v -i ./aprende_conmigo_ssh alumno@servidor.example

El dominio servidor.example es ilustrativo. -i selecciona la privada y -v muestra diagnóstico. Si el puerto es distinto de 22, añade -p PUERTO con el número que te indiquen. Contrasta la huella solicitada con la referencia confiable antes de aceptar.

Reconoce dónde estás

Ya dentro del servidor, prueba whoami y pwd. Comprueba la cuenta y el directorio remoto. Termina con exit.

PRÁCTICA SIMULADA · SERVIDOR LINUX
alumno@laboratorio:~$ sesión de ejemplo lista

Los botones muestran respuestas predeterminadas del ejemplo. Tu cuenta y directorio reales serán los de tu servidor.

Fuentes: ssh: opciones y sesión remota · ssh-keygen: generación y archivos · sshd: públicas autorizadas.

08 / Comprueba lo aprendido

Tres decisiones antes de salir.

Responde y revisa la explicación. Puedes cambiar tus respuestas; el resultado muestra lo que has resuelto ahora.

1. La huella guardada del servidor ha cambiado. ¿Qué haces?
2. Para autenticarte con clave pública, ¿qué demuestra posesión de tu privada?
3. Si usas contraseña con SSH, ¿cómo se transmite al servidor?

0 de 3 resueltas correctamente · 0 respondidas

Las dudas que suelen quedar

¿La pública de usuario cifra todos los comandos?

Las claves de tráfico protegen la comunicación. La pareja del usuario participa en su autenticación mediante firma.

¿Puedo usar SSH para transferir archivos?

Sí. SFTP permite trabajar con archivos sobre SSH, si el servidor lo ofrece. Aquí nos concentramos en una terminal remota.

¿Qué cambia entre SSH y OpenSSH?

SSH es el protocolo. OpenSSH es una implementación que incluye herramientas como el cliente ssh, el servidor sshd y ssh-keygen.

Consulta también: manual de SFTP · proyecto OpenSSH.

Reconoce al servidor.
Demuestra quién eres.
Protege lo que viaja.

La próxima vez que abras una sesión, intenta nombrar cada momento. El comando será el mismo; lo que entiendes que ocurre detrás habrá cambiado.

Para seguir aprendiendo

Fuentes y notas de esta práctica.

  1. RFC 4251 · Arquitectura de SSH. Separación de responsabilidades, identidad del servidor y propiedades de seguridad.
  2. RFC 4253 · Transporte. Identificaciones, negociación, intercambio de claves y NEWKEYS.
  3. RFC 4252 · Autenticación. Firma de usuario, contraseña y combinación de métodos.
  4. RFC 4254 · Conexión. Sesiones, canales y reenvíos.
  5. OpenSSH · ssh y ssh-keygen. Opciones y herramientas de la práctica.
  6. OpenSSH · StrictHostKeyChecking, sshd y AuthorizedKeysFile. Confianza y autorización.

Nota editorial. Las RFC citadas explican la arquitectura; sus listas históricas de algoritmos no son una guía actual de configuración. Los laboratorios, huellas abreviadas y respuestas de terminal son ejemplos originales de PeopleWorks. La portada es una metáfora visual; las precisiones técnicas están en el recorrido y las fuentes.

Este artículo funciona de forma independiente del video. No necesita cuentas, servicios externos ni una conexión SSH para explorar los laboratorios.