
MĆ”s allĆ” de la etiqueta de versión, OpenSSH 10.1 consolida el rumbo iniciado con la serie 10: migración hacia criptografĆa postācuĆ”ntica, modernización de QoS con DSCP, y endurecimiento de Ć”reas históricamente sensibles (agentes, claves, registros y parsing de parĆ”metros). A continuación encontrarĆ”s un repaso minucioso de todas las novedades (con contexto donde aporta valor), ademĆ”s de pautas prĆ”cticas para adoptarlas sin sorpresas.
Lo que sigue es la lista con las novedades de esta versión, disponibles también en las notas oficiales.
Novedades destacadas y contexto de la versión
La publicación oficial de OpenSSH 10.1 (2025ā10ā06) subraya tres ejes: seguridad preventiva frente a criptografĆa cuĆ”ntica, redes con DSCP y saneamiento de entradas. Conecta ademĆ”s cambios puntuales de gran impacto operativo: desde rutas de sockets del agente hasta nuevas seƱales de diagnóstico.
Un recordatorio clave del proyecto: una futura versión ignorarĆ” los registros SSHFP basados en SHAā1, mientras que ssh-keygen -r ya genera huellas SSHFP solo con SHAā256 por defecto, cerrando la puerta a hash dĆ©biles de cara a DNSSEC y verificación de host keys.
Aviso por criptografĆa no postācuĆ”ntica y nueva opción WarnWeakCrypto
OpenSSH 10.1 introduce un aviso cuando la conexión negocia un intercambio de claves que no es resistente a ataques postācuĆ”nticos. El objetivo es poner foco en el riesgo de āstore now, decrypt laterā (almacenar ahora, descifrar despuĆ©s) y acelerar la transición en entornos sensibles.
Este comportamiento se controla con WarnWeakCrypto (en ssh_config), que viene activado por defecto. Si estÔs en una migración gradual o mantienes hosts legacy, puedes desactivar el aviso de forma selectiva con bloques Match. Por ejemplo:
Match host unsafe.example.com WarnWeakCrypto no
CriptografĆa y estado del arte: PQC, hĆbridos y SSHFP
En 10.0, el cliente pasó a usar por defecto mlkem768x25519āsha256, un algoritmo hĆbrido postācuĆ”ntico que combina MLāKEM (KEM NIST FIPS 203) con X25519. Esta estrategia hĆbrida garantiza que, incluso si surgiera un avance criptoanalĆtico en la parte PQ, no estarĆas peor que con ECDH clĆ”sico porque el canal conserva la fuerza de X25519.
Con 10.1, ademĆ”s del aviso explicado antes, se refuerza la transición: OpenSSH seguirĆ” ignorando en el futuro SSHFP con SHAā1; la herramienta ssh-keygen ya emite SSHFP con SHAā256 exclusivamente. En tĆ©rminos operativos, la acción recomendada es regenerar y publicar huellas SSHFP en SHAā256 para tus hosts.
Preguntas habituales: Āæpor quĆ© insistir ahora si los ordenadores cuĆ”nticos aĆŗn no pueden romper SSH? Porque los atacantes pueden capturar hoy y descifrar maƱana. Usar KEX postācuĆ”ntico ya mitiga ese vector. Y si te inquieta la juventud de los algoritmos PQ, recuerda que la modalidad hĆbrida mantiene el nivel de seguridad clĆ”sico como base.
Modernización de red: DSCP/IPQoS y priorización de trÔfico
Esta versión consolida una revisión profunda de QoS. En cliente y servidor, el trĆ”fico interactivo adopta por defecto la clase EF (Expedited Forwarding), lo que ayuda a reducir latencias en WiāFi y medios congestionados. El trĆ”fico no interactivo pasa a usar la marca DSCP por defecto del sistema, sin elevar prioridad.
En la prÔctica, tanto ssh(1) como sshd(8) cambian dinÔmicamente la marca empleada según el tipo de canales presentes: si una misma conexión combina un shell y un sftp, la fase de transferencia no interactiva usarÔ el valor no interactivo durante la operación y volverÔ a EF cuando corresponda. Esto se controla mediante la clave IPQoS en ssh_config y sshd_config.
AdemÔs, se retira el soporte de los antiguos ToS de IPv4 en la opción IPQoS (lowdelay, throughput, reliability dejan de tener efecto). Si aún los usabas, migra a nomenclatura DSCP (p. ej., ef, cs0, af11, etc.).
Endurecimiento de entradas: usuarios, URIs y expansiones
En el apartado de seguridad, 10.1 corrige un caso sutil donde, si construĆas lĆneas de comando con datos externos y a la vez usabas ProxyCommand con expansiones tipo %r/%u, un atacante podĆa colar expresiones de shell. Para mitigarlo, ssh(1) ahora prohĆbe caracteres de control en usuarios pasados por CLI o expandidos, y tambiĆ©n bloquea el carĆ”cter nulo en URIs ssh://.
Nota de compatibilidad: se ha relajado un punto de validación para no romper casos legĆtimos. Los nombres de usuario literales definidos en archivos de configuración (sin expansiones %) quedan exentos, sobre la base de que el config local se considera de confianza.
Señales e información en vivo: SIGINFO y visibilidad
Otro avance prĆ”ctico para depuración: ssh(1) y sshd(8) ganan manejadores SIGINFO que registran el estado de canales y sesiones activas. En producción, esto facilita diagnósticos de flujos, multiplexación, reenvĆos y X11 sin necesidad de adjuntar un depurador o elevar verbosidad de forma invasiva.
En la misma lĆnea de transparencia, cuando una autenticación con certificado falla, sshd ahora registra información suficiente para identificar el certificado (ademĆ”s de por quĆ© se ha denegado). Si trabajas con PKI y certificados de usuario/host, esta mejora acorta muchĆsimo los tiempos de resolución.
sshāagent y claves: sockets, limpieza y PKCS#11
Para evitar accesos cruzados en entornos con montaje restringido de /tmp, los sockets del agente (y los reenviados por sshd) se mueven de /tmp a ~/.ssh/agent. AsĆ, un proceso con permisos limitados sobre /tmp ya no hereda por accidente la posibilidad de firmar con tus claves del agente.
Este cambio tiene otra derivada: antes el SO podĆa limpiar sockets obsoletos, ahora sshāagent incorpora su propia limpieza de sockets antiguos. AdemĆ”s, el agente suma nuevas banderas: -U y -u para controlar limpieza al arrancar, -uu para ignorar hostname en limpieza, y -T para forzar la ubicación histórica en /tmp si de verdad la necesitas.
En el plano de claves, el cliente y el agente ya soportan ed25519 alojadas en tokens PKCS#11. Si dependes de HSM o llaves criptogrƔficas, ganarƔs flexibilidad sin ceder fortaleza.
sshāadd y certificados: caducidad autoālimpiable
Cuando aƱades certificados al agente, ahora se fija su expiración con una gracia de 5 minutos. La idea es simple: permitir finalizar transacciones en cola y, acto seguido, eliminar el certificado del agente de forma automĆ”tica. Si tu flujo exige control total, sshāadd -N desactiva este comportamiento.
RefuseConnection: cortes controlados desde el lado cliente
Hay escenarios donde te interesa abortar una conexión desde el propio cliente con un mensaje claro (por ejemplo, redirecciones operativas o avisos de deprecación). OpenSSH 10.1 añade RefuseConnection a ssh_config: si se encuentra mientras se procesa una sección activa, el cliente termina con error y muestra el texto que hayas definido.
Calidad del código y seguridad viva
El equipo continĆŗa con el saneamiento del código base. En 10.1 se listan fugas de memoria atajadas, mejoras de atomĆa al escribir known_hosts a alta concurrencia y varias condiciones de carrera resueltas en procesos como MaxStartups o sesiones X11.
Un apunte de limpieza cripto: se elimina el soporte para XMSS (experimental y nunca por defecto). Preparando el terreno para esquemas de firma postācuĆ”nticos mĆ”s maduros que llegarĆ”n en futuras versiones.
Portabilidad y ecosistema: PAM, FreeBSD, macOS, Androidā¦
Los cambios de portabilidad tocan muchos frentes: comprobaciones extra en entornos PAM (como asegurar que el usuario no cambia durante el proceso), mejoras de integración con FreeBSD (tun forwarding y compatibilidad), macOS (detección robusta de funciones y headers) y Android (struct passwd con campos no nulos).
TambiĆ©n se aƱaden cabeceras de compatibilidad para plataformas sin ciertas bibliotecas estĆ”ndar, reduciendo el nĆŗmero de #ifdef dispersos. Por Ćŗltimo, se afinan polĆticas de sandbox seccomp en Linux para cubrir syscalls como futex_time64 en 32ābit, y se suma soporte a AWSāLC como alternativa a OpenSSL/LibreSSL.
QoS en acción: ejemplos prÔcticos y migración de IPQoS
Si usabas los antiguos alias ToS (lowdelay, throughputā¦), ahora serĆ”n ignorados y verĆ”s un mensaje de depuración sugiriendo DSCP. La migración tĆpica serĆa pasar de IPQoS lowdelay a IPQoS ef para sesiones interactivas; si ademĆ”s haces SFTP pesado, podrĆas definir perfiles por Match en ssh_config/sshd_config para separar trĆ”fico.
Recuerda que el motor selecciona y actualiza automÔticamente la marca en tiempo real según los canales abiertos, de modo que la mayor parte del trabajo ya lo hace OpenSSH por ti.
Instalación de OpenSSH 10.1 en Linux (fuente)
Mientras las distribuciones integran la versión, puedes compilar desde la fuente oficial. Descarga el tarball desde los mirrors del proyecto, descomprime y compila:
tar -xvf openssh-10.1.tar.gz
Entra al directorio y configura prefijos y rutas de configuración si lo necesitas. Por ejemplo:
cd openssh-10.1 ./configure --prefix=/opt --sysconfdir=/etc/ssh
Compila e instala como de costumbre (segĆŗn permisos, quizĆ” con superusuario):
make
make install
Habilitar OpenSSH en Windows con PowerShell
En entornos Windows modernos (Server 2019/Windows 10 1809+), puedes instalar el cliente y servidor OpenSSH como caracterĆsticas del sistema. Comprueba capacidades y estado:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
Instala los componentes segĆŗn necesites:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Arranca y habilita el servicio del servidor SSH, y verifica la regla de firewall de entrada:
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue
Para conectarte desde otro host Windows o Linux, usa el cliente estĆ”ndar: ssh dominio\usuario@servidor. En el primer acceso, acepta la huella del host y autentĆcate con tu password o clave.
GuĆa operativa: diagnósticos y buenas prĆ”cticas
Para entornos con certificados de usuario/host, aprovecha el logging mejorado de denegaciones en sshd para depurar CA y extensiones. Si una sesión se atasca o sospechas de multiplexación, lanza SIGINFO al proceso para listar canales activos sin subir el nivel global de logs.
Si dependes de agentes, revisa dónde viven los sockets ahora (~/.ssh/agent) y activa limpieza automÔtica en tu modelo de despliegue. En estaciones compartidas o NFS, considera la bandera del agente para establecer hash de hostname en la ruta cuando haga falta.
Errores corregidos mƔs relevantes
En 10.1 se solucionan regresiones menores en X11 cuando se combinaba con mitigaciones de pulsaciones (ObscureKeystrokeTiming), un caso de mala contabilidad de MaxStartups que podĆa anegar slots, y la escritura de known_hosts ahora se hace en operaciones atómicas para evitar lĆneas intercaladas con alta concurrencia.
Otros fixes mejoran diagnósticos al cargar claves, el tratamiento de lĆmites de tamaƱo de config (de 256KB a 4MB), la salida de auditorĆa y corner cases exóticos en reenvĆos locales y secuencias de control. AdemĆ”s, se ponen al dĆa mensajes y salidas de ssh -G y sshd -T.
Checklist de migración recomendada
Esta lista rƔpida recoge las tareas que el propio proyecto sugiere y lo que se desprende de los cambios:
- Cripto: verifica que tu
KexAlgorithmspermite hĆbridos PQ y genera nuevas SSHFP en SHAā256 conssh-keygen -r. - QoS: revisa
IPQoSen cliente/servidor; migra ToS legacy a DSCP; aprovecha EF para sesiones interactivas. - Agentes: adapta scripts y variables a sockets bajo
~/.ssh/agent; valora limpieza automĆ”tica del propio agente. - Configs grandes: si generas configs masivas, el lĆmite sube a 4MB; aplĆcalo con cabeza y controla la validación.
- Parsers: evita construir lĆneas de comando desde inputs no confiables; usa
configlocales con literales cuando tengas casos extraƱos en usernames.
Quien administre flotas mixtas agradecerĆ” que 10.1 apriete la seguridad donde duele menos (parsers, agentes, advertencias) y a la vez mejore la experiencia diaria (QoS dinĆ”mica, SIGINFO, logging de certificados). Si ya estabas en 10.0, la transición es sencilla; si vienes de 9.x, reserva tiempo para ajustar DSCP, regenerar SSHFP en SHAā256 y activar KEX hĆbridos para blindarte frente a la amenaza cuĆ”ntica sin sacrificar rendimiento.