Estoy creando un script de Python que genera claves SSH para la instalación de mi tarjeta raspberry pi SD antes de iniciar la SD por primera vez, así que puedo obtener las huellas digitales sin tener que iniciarla por primera vez para que se genere. las teclas
/etc/ssh $ ls
moduli ssh_host_ecdsa_key ssh_host_key.pub
ssh_config ssh_host_ecdsa_key.pub ssh_host_rsa_key
sshd_config ssh_host_ed25519_key ssh_host_rsa_key.pub
ssh_host_dsa_key ssh_host_ed25519_key.pub
ssh_host_dsa_key.pub ssh_host_key
Estoy usando paramiko para generar las claves. He generado DSA, RSA y ECDSA usando:
paramiko.RSAKey.generate(4096)
paramiko.DSSKey.generate(2048)
paramiko.ECDSAKey.generate(bits=521)
Sin embargo, Paramiko no generará ssh_host_ed25519_key
. Sin embargo, la biblioteca que utiliza paramiko puede generarla: enlace
También he notado que la firma para ecdsa.generate
es:
classmethod generate(curve=<cryptography.hazmat.primitives.asymmetric.ec.SECP256R1 object>, progress_func=None, bits=None)
¿Es <cryptography.hazmat.primitives.asymmetric.ec.SECP256R1 object>
una clase que puede generar el ssh_host_ed25519_key
?
Estoy preguntando por esto porque no quería usar el cryptography.hazmat
directamente debido a este consejo:
Peligro
Este es un módulo de "Materiales peligrosos". SOLO debe usarlo si estás 100% seguro de que sabes lo que estás haciendo porque Este módulo está lleno de minas terrestres, dragones y dinosaurios con láser. armas.