Sto creando uno script python che genera chiavi SSH per l'installazione della mia scheda SD raspberry pi prima di avviare la SD per la prima volta, così posso ottenere le impronte digitali senza doverlo avviare per la prima volta per generare i tasti
/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
Sto usando paramiko per generare le chiavi. Ho generato DSA, RSA e ECDSA utilizzando:
paramiko.RSAKey.generate(4096)
paramiko.DSSKey.generate(2048)
paramiko.ECDSAKey.generate(bits=521)
Tuttavia, Paramiko non genererà ssh_host_ed25519_key
. Tuttavia, la libreria utilizzata da paramiko può generarlo: link
Ho anche notato che la firma per ecdsa.generate
è:
classmethod generate(curve=<cryptography.hazmat.primitives.asymmetric.ec.SECP256R1 object>, progress_func=None, bits=None)
È <cryptography.hazmat.primitives.asymmetric.ec.SECP256R1 object>
una classe che può generare ssh_host_ed25519_key
?
Te lo chiedo perché non volevo utilizzare cryptography.hazmat
direttamente a causa di questo consiglio:
Danger
This is a “Hazardous Materials” module. You should ONLY use it if you’re 100% absolutely sure that you know what you’re doing because this module is full of land mines, dragons, and dinosaurs with laser guns.