Necesito hacer la auditoría de clave SSH para GitHub, pero no estoy seguro de cómo encontrar mi huella digital de clave RSA. Originalmente seguí una guía para generar una clave SSH en Linux.
¿Cuál es el comando que debo ingresar para encontrar mi huella digital de clave RSA actual?

function fingerprint() { ssh-keygen -lf $1 -E md5 }Luego (después de obtener el bashrc) puede obtener una huella digital confingerprint ~/.ssh/key_file;en el cuerpo, así que utilícelasfunction fingerprint() { ssh-keygen -lf $1 -E md5; }en su lugar.Respuestas:
Ejecute el siguiente comando para recuperar la huella digital SHA256 de su clave SSH (
-lsignifica "lista" en lugar de crear una nueva clave,-fsignifica "nombre de archivo"):Entonces, por ejemplo, en mi máquina, el comando que ejecuté fue (usando la clave pública RSA):
Para obtener el formato de huella digital GitHub (MD5) con versiones más nuevas de ssh-keygen, ejecute:
Información adicional:
ssh-keygen -lfTambién funciona enknown_hostsyauthorized_keysarchivos.Para encontrar la mayoría de las claves públicas en sistemas Linux / Unix / OS X, ejecute
(Si desea ver los homedirs de otros usuarios, deberá ser root o sudo).
El
ssh-add -les muy similar, pero enumera las huellas digitales de las claves agregadas a su agente. (Los usuarios de OS X toman nota de que SSH mágico sin contraseña a través de Keychain no es lo mismo que usar ssh-agent).fuente
.ssh/id_rsadebe ser la misma que la de.ssh/id_rsa.pub. Por lo tanto, puede usar cualquiera de los dos (y, si es como yo y le encanta completar pestañas, hace que el trabajo tome 2 teclas menos. ¡Eficiencia!).ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pubsi no desea la salida estándar sha256Los nuevos comandos SSH enumerarán las huellas digitales como una clave SHA256 .
Por ejemplo:
Si necesita compararlo con una huella digital anterior, también debe especificar el uso de la función de hash de huellas digitales MD5 .
También disponible:
-E sha1Actualización ... SÍ ... sí ... Lo sé ... Las claves DSA para SSH ya no deberían usarse, la clave RSA más antigua o las claves eclípticas más nuevas deberían utilizarse en su lugar.
A esos 'administradores' que siguen editando el comando que utilicé en lo anterior. ¡DEJA DE CAMBIARLO! ¡Usted hace que el comando y la salida resultante no coincidan!
fuente
sshque le muestre la antigua huella digital MD5 del servidorssh -o FingerprintHash=md5 example.org, como se menciona en esta respuesta . (Solo estaba buscando eso, y esta respuesta me llevó a esa, así que creo que otros podrían tener una experiencia similar.)Para ver su clave en Ubuntu, simplemente ingrese el siguiente comando en su terminal:
ssh-add -lObtendrá una salida como esta:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23yourName @ ubuntu (RSA)Sin embargo, si obtiene un error como;
Could not open a connection to your authentication agent.Entonces significa que ssh-agent no se está ejecutando. Puede iniciarlo / ejecutarlo con:
ssh-agent bash(gracias a @Richard en los comentarios) y luego volver a ejecutarlossh-add -lfuente
ssh-agent bashy continuar con la vida. En la vida como siempre;ssh-agentno está garantizado como una implementación consistente en todos los sistemas.Un par de claves (las claves privadas y públicas) tendrán la misma huella digital; entonces, en el caso de que no recuerde qué clave privada pertenece a qué clave pública, encuentre la coincidencia comparando sus huellas digitales.
La respuesta más votada por Marvin Vinto proporciona la huella digital de un archivo de clave SSH pública . La huella digital de la clave SSH privada correspondiente también se puede consultar, pero requiere una serie de pasos más larga, como se muestra a continuación.
Cargue el agente SSH, si aún no lo ha hecho. La forma más fácil es invocar
o
(u otro shell que uses).
Cargue la clave privada que desea probar:
Se le pedirá que ingrese la frase de contraseña si la clave está protegida con contraseña.
Ahora, como han dicho otros, escriba
fd:bc:...es la huella digital que buscas. Si hay varias claves, se imprimirán varias líneas y la última línea contiene la huella digital de la última clave cargada.Si desea detener el agente (es decir, si invocó el paso 1 anterior), simplemente escriba 'exit' en el shell y volverá al shell antes de cargar el agente ssh.
No agrego nueva información, pero espero que esta respuesta sea clara para los usuarios de todos los niveles.
fuente
ssh-add -lyssh-keygen -ldevuelve la misma huella digital para un par de claves dado. Además, debe ser minúscula-l, no mayúscula.ssh-add -lyssh-keygen -ldevuelvo la misma huella digital para un par de claves dado. Pero no entiendo qué estaba mal con mis declaraciones originales en el primer párrafo. Agregué una oración para aclarar.ssh-agent. Suponiendo quePRIVKEYse ha establecido en el archivo de clave privada yPUBKEYse ha establecido en el archivo de clave pública (inicialmente no existente), haga:ssh-keygen -y -f "${PRIVKEY}" > "${PUBKEY}"para regenerar la clave pública SSH, entoncesssh-keygen -E md5 -l -v -f "${PUBKEY}"si desea el hash MD5 o simplementessh-keygen -l -v -f "${PUBKEY}"si desea el hash SHA-256 (SHA-256 es el valor predeterminado ahora).La forma más rápida si sus claves están en un agente SSH:
Cada clave del agente se imprimirá como:
fuente
Reproducción de contenido de foros de AWS aquí, porque lo encontré útil para mi caso de uso: quería comprobar cuáles de mis claves coincidían con las que había importado a AWS
openssl pkey -in ~/.ssh/ec2/primary.pem -pubout -outform DER | openssl md5 -cDonde: -
primary.pemes la clave privada para verificarfuente
también funcionará en Mac OS X v10.8 (Mountain Lion) - v10.10 (Yosemite).
También admite la opción
-Ede especificar el formato de huella digital, por lo que en caso de que se necesite MD5 (a menudo se usa, por ejemplo, por GitHub), simplemente agregue-E md5al comando.fuente
man ssh-addla opción-les "Enumera las huellas digitales de todas las identidades representadas actualmente por el agente"En Windows, si está ejecutando PuTTY / Pageant, la huella digital aparece cuando carga su clave PuTTY (.ppk) en Pageant. Es bastante útil en caso de que olvide cuál está usando.
fuente
Esta es la función de shell que uso para obtener la huella digital de mi llave SSH para crear gotas de DigitalOcean :
Póngalo en su
~/.bashrcfuente, y luego puede obtener la huella digital de la siguiente manera:fuente
Si su agente SSH se está ejecutando, es
para enumerar las huellas digitales de RSA de todas las identidades, o
-Lpara enumerar claves públicas.Si su agente no se está ejecutando, intente:
Y para tus claves públicas:
Si recibe el mensaje: ' El agente no tiene identidades. ', entonces
ssh-keygenprimero debe generar su clave RSA .fuente
/etc/ssh/ssh_host_ed25519_key.pub. La segunda parte de la pregunta sigue siendo: ¿alguna desventaja de usar esta clave generada automáticamente?A veces puede tener un montón de claves en su
~/.sshdirectorio, y no sabe cuál coincide con la huella digital mostrada por GitHub / Gitlab / etc.Aquí le mostramos cómo mostrar los nombres de archivo de clave y las huellas digitales MD5 de todas las claves en su
~/.sshdirectorio:(Para saber qué significan los parámetros, consulte esta respuesta sobre el
findcomando .Tenga en cuenta que los archivos privados / públicos que pertenecen a una clave tienen la misma huella digital, por lo que verá duplicados.
fuente
Google Compute Engine muestra la huella digital de la clave del host SSH en la salida en serie de una instancia de Linux. La API puede obtener esos datos de GCE y no es necesario iniciar sesión en la instancia.
No lo encontré en ningún otro lado, sino en la salida en serie. Creo que la huella digital debería estar en un lugar más amigable para los programadores.
Sin embargo, parece que depende del tipo de instancia. Estoy usando instancias de Debian 7 (Wheezy) f1-micro.
fuente
Para verificar un servidor SSH remoto antes de la primera conexión, puede visitar www.server-stats.net/ssh/ para ver todas las claves SHH para el servidor, así como desde el momento en que se conoce la clave.
Eso no es como un certificado SSL, pero definitivamente es algo que debe hacer antes de conectarse a cualquier servidor SSH por primera vez.
fuente
En Fedora hago lo
locate ~/.sshque me dice que las claves están enfuente
~/.ssh/id*.pubes) y quiere obtener sus huellas digitales.