Guía detallada de la estructura de claves en OpenSSH

Fuentes: OpenSSH Key Structure Guide

OpenSSH cuenta con una documentación canónica limitada sobre el formato interno de sus claves, concentrada en el archivo PROTOCOL.key dentro del código fuente. Esta guía nace precisamente para cubrir ese vacío: ofrece una explicación detallada, minuciosa y didáctica de los formatos de clave pública y privada que emplea OpenSSH, tanto en su versión legacy anterior a la 7.8 como en el nuevo formato "v1" introducido en versiones recientes.

El documento comienza explicando los fundamentos. En el formato heredado, las claves privadas se almacenan en codificación PEM estándar, por lo que son compatibles de forma nativa con OpenSSL, LibreSSL o GnuTLS sin necesidad de conversión. Las claves públicas, en cambio, siguen una estructura de tres campos separados por espacios: el tipo de algoritmo (por ejemplo ssh-rsa o ssh-ed25519), la clave pública propiamente dicha codificada en Base64 y un comentario opcional. El nuevo formato v1, por su parte, abandona la compatibilidad PEM directa e introduce ventajas relevantes: permite elegir funciones de derivación de clave y cifrados personalizados para claves privadas cifradas, incorpora un comentario embebido, incluye la clave pública dentro del archivo privado (evitando recalcularla) y añade un mecanismo de checksum para verificar que una clave cifrada se ha descifrado correctamente.

El núcleo de la guía son los desgloses específicos por tipo de clave. Se analiza con detalle RSA —se recomienda usar 4096 bits si se opta por este algoritmo—, mostrando tanto la estructura binaria empaquetada de la clave pública como el formato PEM tradicional de la privada. Cada apartado incluye ejemplos reales en hex y Base64, anotaciones línea a línea y referencias cruzadas a los RFC 8017 y 7468 que definen las primitivas criptográficas subyacentes. El resultado es una referencia técnica pensada para desarrolladores, administradores de sistemas y profesionales de seguridad que necesiten comprender, generar o depurar claves SSH más allá de lo que ofrece la documentación oficial.