encryption - how - openssl online
¿Cómo se prueba un par de llaves DSA públicas/privadas? (10)
Cifre algo con la clave pública, y vea qué clave privada la descifra.
Este artículo de proyecto de código de nada menos que Jeff Atwood implementa un contenedor simplificado alrededor de las clases de criptografía .NET. Suponiendo que estas claves se crearon para ser utilizadas con RSA, use la clase asimétrica con su clave pública para encriptar, y lo mismo con su clave privada para descifrar.
¿Hay alguna manera fácil de verificar que una clave privada determinada concuerde con una clave pública dada? Tengo algunos * .pub, y algunos * .key files, y necesito comprobar con qué.
Nuevamente, estos son archivos pub / key, DSA.
Realmente preferiría un one-liner de algún tipo ...
El control puede hacerse más fácil con diff:
diff <(ssh-keygen -y -f <private_key_file>) <public key file>
Lo único extraño es que diff no dice nada si los archivos son iguales, por lo que solo se te informará si el público y el privado no coinciden.
Elimine las claves públicas y genere nuevas desde las claves privadas. Guárdelos en directorios separados, o use una convención de nomenclatura para mantenerlos en línea.
Encontré una manera que parece funcionar mejor para mí:
ssh-keygen -y -f <private key file>
ese comando generará la clave pública para la clave privada dada, entonces simplemente compare la salida con cada archivo * .pub.
Para las claves DSA, use
openssl dsa -pubin -in dsa.pub -modulus -noout
para imprimir las claves públicas, luego
openssl dsa -in dsa.key -modulus -noout
para mostrar las claves públicas correspondientes a una clave privada, luego compararlas.
Si está en Windows y quiere usar una GUI, con puttygen puede importar su clave privada en ella:
Una vez importado, puede guardar su clave pública y compararla con la suya.
Siempre comparo un hash MD5 del módulo usando estos comandos:
Certificate: openssl x509 -noout -modulus -in server.crt | openssl md5
Private Key: openssl rsa -noout -modulus -in server.key | openssl md5
CSR: openssl req -noout -modulus -in server.csr | openssl md5
Si los hashes coinciden, entonces esos dos archivos van de la mano.
Simplemente use puttygen y cargue su clave privada en él. Ofrece diferentes opciones, por ejemplo, exportar la clave pública correspondiente.
Suponiendo que tiene las claves públicas dentro de los certificados x.509, y suponiendo que sean claves RSA, para cada clave pública, haga
openssl x509 -in certfile -modulus -noout
Para cada clave privada, haz
openssl rsa -in keyfile -modulus -noout
Luego haga coincidir las claves por módulo.
diff -s <(ssh-keygen -y -f ~ / .ssh / id_rsa) <(cut -d '''' -f 1,2 ~ / .ssh / id_rsa.pub)