Inspector de claves públicas SSH
Toma las líneas que ya tienes en authorized_keys o known_hosts y te dice qué hay realmente en ellas. De cada clave informa del algoritmo, del tamaño real leído del propio material criptográfico en lugar de deducirlo del nombre de la línea, de la huella SHA256 en el formato que imprime el OpenSSH actual, de la huella MD5 separada por dos puntos que todavía muestran los servidores antiguos y algunas consolas en la nube, y del comentario y las opciones que lleve adjuntos. Eso suele bastar para responder a la pregunta por la que abriste el archivo: cuál de estas seis claves es el portátil que perdiste, y si esta clave de host coincide con la huella que publica la documentación. También detecta cosas invisibles cuando uno hojea una línea de clave. El nombre del algoritmo se escribe dos veces —como primera palabra de la línea y dentro del bloque base64— y solo el segundo es el que compara un servidor, así que una clave reetiquetada por un copiar y pegar parece completamente normal y jamás autentica. Lo mismo ocurre con un nombre de curva ECDSA que no concuerda con el algoritmo bajo el que está archivada, con un bloque truncado que aun así se descodifica, con una clave RSA por debajo del suelo de 2048 bits y con ssh-dss, que OpenSSH desactivó por defecto en la versión 7.0 y eliminó por completo en la 9.8. Si pegas una clave privada por error, se niega a tocarla y te lo dice. Todo se ejecuta en el navegador: ninguna clave se sube.
Cómo usar
- Pega una o varias líneas de clave pública: vale un archivo authorized_keys o known_hosts entero, y las líneas de comentario que empiezan por # se omiten.
- Compara la huella SHA256 con la huella de clave de host publicada, o la MD5 si el sistema que estás verificando todavía imprime ese formato.
- Usa el tamaño y el algoritmo para localizar las entradas que conviene rotar: cualquier ssh-dss y cualquier clave RSA por debajo de 2048 bits.
- Mira el comentario y las opciones para averiguar a qué máquina pertenece cada clave antes de borrar una línea.
- Todo lo marcado en ámbar es una clave que no se comportará como sugiere la línea: lee el aviso antes de fiarte de la entrada.
Preguntas frecuentes
- ¿Por qué mi huella no coincide con la que imprimió ssh-keygen?
- Lo más probable es que estés comparando formatos de hash distintos. Desde OpenSSH 6.8 el valor por defecto es SHA256 mostrado como base64 sin relleno, del estilo SHA256:uNiVzt…; antes era MD5 en hexadecimal separado por dos puntos. Son huellas exactamente de los mismos bytes, así que ninguna es más correcta, pero no se parecen en nada. Esta herramienta imprime las dos para que compares con la que muestre la otra parte. Si ambas difieren, las claves son realmente distintas: la huella cubre solo el bloque base64, de modo que cambiar el comentario o las opciones no puede afectarla.
- ¿Qué diferencia hay entre el algoritmo de la línea y el que va dentro de la clave?
- Una línea de clave pública de OpenSSH escribe el nombre del algoritmo dos veces: como primera palabra y como primer campo con prefijo de longitud dentro del bloque base64. Solo la copia interna forma parte de la clave; la primera palabra es una etiqueta, y nada en el flujo de trabajo habitual comprueba que ambas coincidan. Así que una línea editada a mano, o montada a partir de dos claves por un mal copiar y pegar, puede decir ssh-rsa mientras lleva dentro una clave Ed25519. En el archivo parece de lo más corriente, y sencillamente nunca autentica. Esta herramienta compara ambas y avisa cuando no concuerdan.
- ¿Es seguro pegar aquí una clave?
- Una clave pública sí: es pública por diseño, y esta página no la envía a ninguna parte. Todo el análisis y las dos huellas se calculan en tu navegador, y puedes confirmarlo cargando la página y desconectándote luego de la red; sigue funcionando. Una clave privada es otra cosa: no la pegues nunca en ninguna página web, tampoco en esta. Si la entrada empieza con una cabecera PRIVATE KEY, la herramienta se niega a procesarla y lo indica, en lugar de analizarla en silencio.
- ¿De qué tamaño debe ser una clave SSH?
- Para claves nuevas, lo habitual es recomendar Ed25519: está fijada en 256 bits, es pequeña, rápida y no tiene parámetros que puedas equivocar. Si necesitas RSA por un servidor antiguo, 2048 bits es el suelo actual y 4096 la elección común; por debajo de 2048 tanto OpenSSH como la mayoría de autoridades de certificación ya rechazan la clave. Ojo: los tamaños de RSA no son comparables con los de Ed25519. Una clave Ed25519 de 256 bits equivale más o menos a una RSA de 3072, porque los números miden cosas distintas. ECDSA sobre nistp256 sirve donde no haya Ed25519.
- ¿Por qué se marca ssh-dss si mi clave funciona?
- Porque funciona solo allí donde algo antiguo sigue aceptándola. Las claves DSA en OpenSSH están fijadas en 1024 bits, por debajo de cualquier recomendación actual, y la implementación es especialmente sensible a la mala aleatoriedad: un nonce repetido filtra la clave privada por completo. OpenSSH desactivó ssh-dss por defecto en la versión 7.0 y la 9.8 eliminó el código entero, así que cualquier servidor que actualices dejará de aceptar la clave sin avisar. Si todavía hay una clave de este tipo en un authorized_keys, conviene sustituirla antes de la actualización y no después.
- ¿Puede leer líneas de known_hosts y certificados?
- Las líneas de known_hosts sí: los patrones de host iniciales se separan de la clave en lugar de confundirse con ella, y eso incluye las entradas con hash que empiezan por |1| y marcadores como @cert-authority y @revoked. Las cadenas de opciones de authorized_keys —command="…", no-pty, from="…"— se separan igual. Los certificados de OpenSSH (los tipos *-cert-v01@openssh.com) se reconocen y se les calcula la huella, pero su cuerpo no se descodifica, así que aquí no verás los principales ni la ventana de validez.
Herramientas relacionadas
Inspector de claves públicas PGP
Lee una clave pública OpenPGP en armadura: huella completa, ID de clave, algoritmo, tamaño, fechas de creación y caducidad, IDs de usuario y subclaves.
Conversor de JWK a PEM (y al revés)
Convierte un JWK o un JWKS entero en claves públicas PEM y al revés, con la huella RFC 7638 de cada clave — todo en tu navegador.
Inspector de almacenes PKCS#12
Abre un .p12 o .pfx en el navegador: MAC y cifrados antes de la contraseña, y luego la cadena, la clave privada y si se corresponden.
JSON Ordenar Claves
Ordena las claves de un objeto JSON alfabéticamente. Opcionalmente recursivo en objetos anidados para canonicalizar todo el documento.
Aplanar / Desaplanar JSON (notación de puntos)
Aplana JSON anidado en claves con notación de puntos, o reconstruye JSON anidado desde claves planas — delimitador configurable y reversible.
Probador de EditorConfig
Pega un .editorconfig y unas rutas de archivo: verás las propiedades que resuelve cada archivo y qué sección y línea decidió cada valor.