Ich muss publickey von einem privaten Schlüssel ohne temporäre Speicherort lokal wie wir es in sshgen.So ich benutze this.Here iam übergeben meinen privaten Schlüssel als Eingabe so (während der Ausführung):Extract Publickey von Privatekey Eingabe mit Python
python codekey.py "-----BEGIN RSA PRIVATE KEY-----\nMIhhhhhhhhhhhhhhhh......Bidqt/YS3/0giWrtv+rMkJtv8n\nmirJ+16SZodI5gMuknvZG....................n-----END RSA PRIVATE KEY-----"
Mein Code (codekey.py):
import sys
import io
from twisted.conch.ssh import keys
k = sys.argv[1]
rsa = keys.RSA.importKey(k)
key = keys.Key(rsa)
ssh_public = key.public().toString("openssh")
print ssh_public
Fehler:
Traceback (most recent call last):
File "codekey.py", line 7, in <module>
rsa = keys.RSA.importKey(k)
File "/usr/lib/python2.7/dist-packages/Crypto/PublicKey/RSA.py", line 638, in importKey
if lines[1].startswith(b('Proc-Type:4,ENCRYPTED')):
IndexError: list index out of range
Dyanam ically muss ich Schlüsselwert übergeben, wie oben gezeigt, während das Ausführen meines Python-Skripts und von diesem wird es öffentlichen Schlüssel generieren. Wenn es möglich ist ?? Ich brauche nicht lokal zu speichern, da für priveleges und wichtige Wertpapiere, nicht hacken wollen.
mit Blick auf den Quellcode, ist es nicht, wie die Form der privaten Schlüssel aussehen wird unterstützt. Außerdem sollten Sie conch.keys.Key.fromString() verwenden, um den Schlüssel zu importieren, sobald Sie ihn in einem akzeptablen Format haben. –
Danke James, aber wo ich vermisse, weiß ich, dass ich einen Fehler in dieser Zeile rsa = keys.RSA.importKey (k) gemacht habe. Da ich meinen privaten Schlüssel als Eingabe bekommen muss, anstatt in die pem-Datei zu gelangen und einen extrahieren Öffentlicher Schlüssel von it.Ist es möglich ??? Wenn wir sshkeygen verwenden, speichert es Schlüssel lokal. Ich will das aus Sicherheitsgründen nicht. – Doefi