Estoy intentando escribir un script para generar pares de claves de identidad SSH para mí.Cómo generar pares de claves SSH con Python
from M2Crypto import RSA
key = RSA.gen_key(1024, 65337)
key.save_key("/tmp/my.key", cipher=None)
El archivo /tmp/my.key
se ve muy bien ahora.
Ejecutando ssh-keygen -y -f /tmp/my.key > /tmp/my.key.pub
Puedo extraer la clave pública.
Mi pregunta es ¿cómo puedo extraer la clave pública de python? Usando key.save_pub_key("/tmp/my.key.pub")
ahorra algo como:
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADASDASDASDASDBarYRsmMazM1hd7a+u3QeMP
...
FZQ7Ic+BmmeWHvvVP4Yjyu1t6vAut7mKkaDeKbT3yiGVUgAEUaWMXqECAwEAAQ==
-----END PUBLIC KEY-----
cuando estoy buscando algo como:
ssh-rsa AAAABCASDDBM$%3WEAv/3%$F ..... OSDFKJSL43$%^DFg==
Compruebe pycryto, ya que tiene el formato 'OpenSSH' para el método exportKey. –
pycrypto [no se ha mantenido y tiene vulnerabilidades conocidas] (https://github.com/dlitz/pycrypto/issues/173). 'pycryptodome' es un reemplazo directo. – galgalesh
Creo que quisiste decir '65537' en lugar de' 65337'. El primero es mucho más común. [Los riesgos asociados con el uso de otros números se disputan] (http://security.stackexchange.com/questions/2335/should-rsa-public-exponent-be-only-in-3-5-17-257-or- 65537-debido a la seguridad-c), pero el consenso es que 65537 (es decir, 2^16 + 1) es seguro. 65337 no es compatible con NIST. – Zenexer