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.
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.
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.
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.
Leer toda la secuencia en texto
- Se establece TCP y se intercambian identificaciones y preferencias criptográficas.
- Durante el intercambio de claves, el cliente verifica la firma del servidor y su asociación con una identidad esperada.
- Ambos derivan claves de tráfico por dirección. NEWKEYS señala el uso de las nuevas claves.
- Sobre el transporte protegido se autentica al usuario.
- 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.
Identifica al servidor. Su privada permanece en el servidor; el cliente comprueba su firma y la confianza en su pública.
Permite demostrar posesión de una privada. El servidor verifica la firma con una pública autorizada para la cuenta.
Protegen los datos. Se derivan durante el intercambio y tienen funciones distintas por dirección. Pueden renovarse.
| Archivo habitual | Dónde | Qué recuerda o autoriza |
|---|---|---|
~/.ssh/known_hosts | Cliente | Claves de servidores conocidos. |
~/.ssh/authorized_keys | Cuenta del servidor | Pú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.
Compara antes de continuar
Huellas abreviadas e inventadas para el ejercicio. Cambia el caso y decide.
SHA256:3f7a…91bcSHA256:3f7a…91bcCompara las dos huellas y elige una acción.
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.
¿Cómo entrarías con tu par de claves?
El transporte ya está protegido. Elige un método para ver qué demuestra y qué se transmite.
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.
Antes y después del cifrado
La identificación inicial de SSH es visible. El usuario todavía no está autenticado.
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
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.
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
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.
alumno@laboratorio:~$ sesión de ejemplo listaLos 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.
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.
- RFC 4251 · Arquitectura de SSH. Separación de responsabilidades, identidad del servidor y propiedades de seguridad.
- RFC 4253 · Transporte. Identificaciones, negociación, intercambio de claves y NEWKEYS.
- RFC 4252 · Autenticación. Firma de usuario, contraseña y combinación de métodos.
- RFC 4254 · Conexión. Sesiones, canales y reenvíos.
- OpenSSH · ssh y ssh-keygen. Opciones y herramientas de la práctica.
- 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.