¿Qué es una clave pública SSH?

Una clave pública SSH es una de las dos mitades de un par de claves criptográficas utilizado para la autenticación segura mediante el protocolo SSH (Secure Shell). Al generar un par de claves SSH, se obtiene una clave privada (guardada en secreto en tu equipo) y una clave pública (compartida con los servidores a los que deseas acceder). El servidor utiliza tu clave pública para verificar tu identidad sin necesidad de transmitir una contraseña.

Las claves públicas SSH se almacenan como una única línea de texto en formato OpenSSH, compuesta por tres partes: el tipo de clave (como ssh-rsa o ssh-ed25519), los datos de la clave codificados en Base64, y un comentario opcional (normalmente usuario@hostname). Dentro de los datos en Base64 se encuentra información binaria estructurada que incluye los parámetros del algoritmo y el material criptográfico real.

Las huellas digitales (fingerprints) son hashes cortos y legibles por humanos de los datos de la clave. Facilitan la verificación y comparación de claves sin necesidad de leer la cadena Base64 completa. Los dos formatos de fingerprint más comunes son SHA-256 (el predeterminado moderno) y MD5 (el formato heredado con pares hexadecimales separados por dos puntos).

Descripción de la herramienta

Esta herramienta analiza claves públicas SSH en formato OpenSSH y extrae todos los metadatos importantes. Pega tu clave pública y obtén al instante el tipo de clave, el algoritmo, el tamaño de la clave en bits, el comentario, y los fingerprints SHA-256 y MD5, coincidiendo con la salida que obtendrías con ssh-keygen -l.

Ejemplos

Entrada:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

Salida:

Campo Valor
Tipo de clave ssh-ed25519
Algoritmo Ed25519
Tamaño de clave 256 bits
Comentario user@laptop
Fingerprint SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
Fingerprint MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

Características

  • Compatible con los tipos de clave RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA y Security Key (FIDO)
  • Calcula los fingerprints SHA-256 y MD5 en el formato estándar de OpenSSH
  • Extrae el tamaño de la clave en bits directamente desde los datos binarios de la clave
  • Valida la estructura de la clave, incluyendo la integridad del Base64 y la coherencia del tipo embebido
  • Analiza el campo de comentario opcional de la línea de clave pública

Cómo funciona

La herramienta divide la entrada en tres partes: tipo de clave, datos en Base64 y comentario. A continuación, decodifica los datos en Base64 a binario y lee la estructura interna utilizando el formato de longitud prefijada de SSH, donde cada campo comienza con una longitud de 4 bytes en big-endian seguida de los datos del campo. El tamaño de la clave se determina a partir de los parámetros específicos del algoritmo: para RSA es la longitud en bits del módulo n, para DSA es el primo p, y para las claves de curva elíptica se deriva del nombre de la curva. Los fingerprints se calculan aplicando un hash a los datos binarios sin procesar de la clave con SHA-256 y MD5.

Tipos de clave compatibles

Identificador de tipo Algoritmo
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

Casos de uso

  • Verificación de fingerprints de claves — Confirma que una clave pública coincide con el fingerprint esperado antes de añadirla a authorized_keys o a un servicio de alojamiento Git
  • Auditoría de acceso al servidor — Identifica rápidamente el algoritmo y el tamaño de las claves en tu archivo authorized_keys para detectar claves débiles u obsoletas
  • Depuración de problemas SSH — Comprueba si una clave tiene el formato correcto, utiliza el algoritmo esperado y posee una estructura válida

Preguntas frecuentes

¿Dónde encuentro mi clave pública SSH? En la mayoría de los sistemas se almacena en ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub, o una ruta similar según el algoritmo. También puedes ejecutar ssh-add -L para listar las claves cargadas en tu agente SSH.

¿Es seguro compartir mi clave pública? Sí. La clave pública está diseñada para ser compartida. No puede utilizarse para derivar la clave privada ni para autenticarse en tu nombre.

¿Por qué los fingerprints SHA-256 y MD5 tienen un aspecto diferente? Los fingerprints SHA-256 están codificados en Base64 y llevan el prefijo SHA256:, mientras que los fingerprints MD5 utilizan pares hexadecimales separados por dos puntos con el prefijo MD5:. SHA-256 es el formato predeterminado en las versiones modernas de OpenSSH.