persona leer lector huellas huella hacer guardar digitales como codigo casero python openssh

leer - Obtención de una huella digital SSH de una clave pública en Python



lector de huellas digitales python (2)

Es la suma MD5 de la clave codificada en base64:

import base64 import hashlib def lineToFingerprint(line): key = base64.b64decode(line.strip().split()[1].encode(''ascii'')) fp_plain = hashlib.md5(key).hexdigest() return '':''.join(a+b for a,b in zip(fp_plain[::2], fp_plain[1::2]))

Estoy tratando de entender los pasos para tomar una clave pública de OpenSSH así:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqmEmDTNBC6O8HGCdu0MZ9zLCivDsYSttrrmlq87 / YsEBpvwUTiF3UEQuFLaq5Gm + dtgxJewg / UwsZrDFxzpQhCHB6VmqrbKN2hEIkk / HJvCnAmR1ehXv8n2BWw3Jlw7Z + VgWwXAH50f2HWYqTaE4qP4Dxc4RlElxgNmlDPGXw / dYBvChYBG / RvIiTz1L + pYzPD4JR54IMmTOwjcGIJl7nk1VjKvl3D8Wgp6qejv4MfZ7Htdc99SUKcKWAeHYsjPXosSk3GlwKiS / sZi51Yca394GE7T4hZu6HTaXeZoD8 + IZ7AijYn89H7EPjuu0iCAa / cjVzBsFHGszQYG + U5KfIw ==

Y luego convertirlo en una huella dactilar estándar así:

2048 49:d3:cb:f6:00:d2:93:43:a6:27:07:ca:12:fd:5d:98 id_rsa.pub (RSA)

Intenté sumergirme en la fuente de OpenSSH para entender esto, pero está sobre mi cabeza. Mi primera suposición fue hacer un MD5 simple en el texto clave, pero el resultado no coincide con la salida anterior.


https://github.com/ojarva/sshpubkeys

pip install sshpubkeys

Uso:

import sshpubkeys key = sshpubkeys.SSHKey("ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqmEmDTNBC6O8H" + "GCdu0MZ9zLCivDsYSttrrmlq87/YsEBpvwUTiF3UEQuFLaq5Gm+dtgxJewg/UwsZrDFxz" + "pQhCHB6VmqrbKN2hEIkk/HJvCnAmR1ehXv8n2BWw3Jlw7Z+VgWwXAH50f2HWYqTaE4qP4" + "Dxc4RlElxgNmlDPGXw/dYBvChYBG/RvIiTz1L+pYzPD4JR54IMmTOwjcGIJl7nk1VjKvl" + "3D8Wgp6qejv4MfZ7Htdc99SUKcKWAeHYsjPXosSk3GlwKiS/sZi51Yca394GE7T4hZu6H" + "TaXeZoD8+IZ7AijYn89H7EPjuu0iCAa/cjVzBsFHGszQYG+U5KfIw== user@host") print(key.bits) # 2048 print(key.hash()) # ''49:d3:cb:f6:00:d2:93:43:a6:27:07:ca:12:fd:5d:98''