GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo comprobar si un par de claves pública/privada de RSA coincide

Solución 1:

Preferiría el ssh-keygen -y -e -f <private key> en lugar de la respuesta aceptada de ¿Cómo se prueba un par de claves DSA público/privado? en Desbordamiento de pila.

ssh-keygen -y -e -f <private key> toma una clave privada e imprime la clave pública correspondiente que se puede comparar directamente con sus claves públicas disponibles. (Sugerencia:tenga cuidado con los comentarios o las opciones clave).

(¿Cómo demonios hace eso? Solo espero que la clave pública esté codificada directa o indirectamente en la clave privada...)

Necesitaba esto yo mismo y usé el siguiente Bash one-liner. No debería generar nada si las teclas van juntas. Aplicar un poco -q a la diferencia en scripts y diferencia solo establece el código de retorno de manera adecuada.

PRIVKEY=id_rsa
TESTKEY=id_rsa.pub
diff <( ssh-keygen -y -e -f "$PRIVKEY" ) <( ssh-keygen -y -e -f "$TESTKEY" )

Solución 2:

Dependiendo de dónde obtenga el archivo de clave pública que está probando, la respuesta aceptada puede dar resultados falsos positivos. Esto se debe al comportamiento descrito en el comentario de @drewbenn. Específicamente, cuando la opción -e se usa con el archivo de clave privada como el parámetro de opción -f, simplemente repite (pero reformatea) lo que hay en el archivo de clave pública asociado.

En otras palabras,

ssh-keygen -y -f id_rsa

(aparentemente) genera el valor de la clave pública, y

ssh-keygen -y -e -f id_rsa

simplemente y genera (y reformatea) la clave en el existente id_rsa.pub lo que sea .

En mi caso, tengo que verificar que la pareja no se haya corrompido. Entonces, decidí comparar lo siguiente:

ssh-keygen -y -f id_rsa | cut -d' ' -f 2

con

cut -d' ' -f 2 id_rsa.pub

Por lo tanto:

diff <(cut -d' ' -f 2 id_rsa.pub) <(ssh-keygen -y -f id_rsa | cut -d' ' -f 2)

Quizás esto no sea tan flexible, pero es mejor para mis necesidades. Tal vez ayude a alguien más.

Solución 3:

Si están en su sistema local, pegue id_rsa.pub en tu $HOME/.ssh/authorized_keys y ssh a localhost usando el id_rsa llave. Si funciona, entonces coinciden.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
ssh -i $HOME/.ssh/id_rsa localhost

Linux
  1. ¿Cómo verificar que el certificado Ssh fue firmado por la clave privada Ssh Ca especificada?

  2. Cómo hacer una VPN

  3. ssh-keygen:cómo configurar una clave rsa con un determinado nombre de usuario

  4. cómo actualizar homebrew con Cron en Mac os

  5. SSH:en una red privada, cómo acceder a la máquina remota desde la máquina de origen sin usar la clave pública ssh

Cómo comprobar la versión de Python

Cómo comprobar la versión de Java

Cómo configurar la clave pública y privada SSH en Linux

¿Cómo comprobar la versión de OpenGL?

Cómo agregar una clave pública SSH al servidor

Cómo convertir la clave privada de PuTTY (.ppk) en clave SSH