Sto tentando di scrivere uno script per generare coppie di chiavi SSH Identity per me.Come generare coppie di chiavi SSH con Python
from M2Crypto import RSA
key = RSA.gen_key(1024, 65337)
key.save_key("/tmp/my.key", cipher=None)
Il file /tmp/my.key
sembra ottimo ora.
Eseguendo ssh-keygen -y -f /tmp/my.key > /tmp/my.key.pub
Posso estrarre la chiave pubblica.
La mia domanda è come posso estrarre la chiave pubblica da Python? Utilizzando key.save_pub_key("/tmp/my.key.pub")
salva qualcosa di simile:
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADASDASDASDASDBarYRsmMazM1hd7a+u3QeMP
...
FZQ7Ic+BmmeWHvvVP4Yjyu1t6vAut7mKkaDeKbT3yiGVUgAEUaWMXqECAwEAAQ==
-----END PUBLIC KEY-----
quando sto cercando qualcosa di simile:
ssh-rsa AAAABCASDDBM$%3WEAv/3%$F ..... OSDFKJSL43$%^DFg==
Controllare pycryto, poiché ha già il formato 'OpenSSH' per il metodo exportKey. –
pycrypto [non è mantenuto e ha vulnerabilità note] (https://github.com/dlitz/pycrypto/issues/173). 'pycryptodome' è una sostituzione drop-in. – galgalesh
Penso che intendessi '65537' piuttosto che' 65337'. Il primo è molto più comune. [I rischi associati all'uso di altri numeri sono contestati] (http://security.stackexchange.com/questions/2335/should-rsa-public-exponent-be-only-in-3-5-17-257-or- 65537-dovuto-a-sicurezza-c), ma il consenso è che 65537 (cioè, 2^16 + 1) è sicuro. 65337 non è compatibile con NIST. – Zenexer