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 (
-l
significa "lista" en lugar de crear una nueva clave,-f
significa "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 -lf
También funciona enknown_hosts
yauthorized_keys
archivos.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 -l
es 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_rsa
debe 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.pub
si 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 sha1
Actualizació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
ssh
que 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 -l
Obtendrá una salida como esta:
2568 0j:20:4b:88:a7:9t:wd:19:f0:d4:4y:9g:27:cf:97:23
yourName @ 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 -l
fuente
ssh-agent bash
y continuar con la vida. En la vida como siempre;ssh-agent
no 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 -l
yssh-keygen -l
devuelve la misma huella digital para un par de claves dado. Además, debe ser minúscula-l
, no mayúscula.ssh-add -l
yssh-keygen -l
devuelvo 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 quePRIVKEY
se ha establecido en el archivo de clave privada yPUBKEY
se 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 -c
Donde: -
primary.pem
es 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
-E
de 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 md5
al comando.fuente
man ssh-add
la opción-l
es "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
~/.bashrc
fuente, 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
-L
para 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-keygen
primero 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
~/.ssh
directorio, 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
~/.ssh
directorio:(Para saber qué significan los parámetros, consulte esta respuesta sobre el
find
comando .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 ~/.ssh
que me dice que las claves están enfuente
~/.ssh/id*.pub
es) y quiere obtener sus huellas digitales.