Pregunta

Google Ok En primer lugar sí he buscado y stackoverflow y hecho un poco de lectura (más de 4 horas sólo en esta sesión) no han encontrado lo que necesito por estas razones:

  • Muchos de ellos sugieren acaba de lanzar un exe como gpg.exe (http://stackoverflow.com/questions/1020320)

  • Algunos sugerido utilizar PyCrypto u otras bibliotecas y mirando a ellos, o bien a) no puedo encontrar cómo utilizar cualquiera de su API, b) no puedo encontrar la forma de importar un prv preexistente / clave pub o c) que utilizan los inseguros RandomPool (y yo tratando de que está actualizado metiendo en problemas)

  • Algunos mención de pasada, pero no pude encontrar lo que cuando enlazan con (o sus existía ninguna relación en absoluto.

Así que sé pido que los usuarios stackoverflow compañeros cómo puedo hacer esto, toma una cadena de una clave pública (o ruta (tan sólo pudiera escribirla en un archivo temporal, (planeo tener sólo como una cadena pub_key = "..."))) y utilizarlo para firmar y asegurar una cadena (que se publicarán en un foro (JSON para actualizar mi solicitud)?

también estos son claves RSA (Putty Gen 4096 bits SSH-2-RSA) que se generan usando PuTTYgen (pueden estar en cualquier formato (OpenSSH, ssh.com, PPK)

Esto es lo que las miradas clave pública como

---- COMENZAR SSH2 CLAVE PÚBLICA ----

Comentario: "RSA-key-20101003"

AAAAB3NzaC1yc2EAAAABJQAAAgEAi + 91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf WQ0ROoJC + + XIqW5vVJfgmr A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu WkLKFK1h67q6Coc + 3eOTmKrOuZbWc19YQgybdkR / GxF7XAbq4NCGNaCDtMOqX8Q2 L / a9fAYqVdTwg9trpcz3whNmdLk / B0edOABKuVX51UdLV + + ZggK503 uAb1JiIIj0 mARwR / HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4 + YmsrLJb / TpfJeXA vj4KZMNJv15YXz7 / iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b / lX9SJ SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF / QXOcxWFJkZoj36rvMd9n Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0 MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ + 7I MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I / iEC58ekdrH35tq5 + 1ilW dkk9 + rrhUy4qrZ + HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10 o + TPSK8 =

---- FIN SSH2 CLAVE PÚBLICA ----

NO ESTA -> Formato de clave parece ser tan PKCS1 M2Crypto no funcionará (su función clave de carga espera PEM)

última lectura, creo que es clave pública SSH File Format (RFC: http: // www. ietf.org/rfc/rfc4716.txt )

También creo continuación se equivocan, no creo que se encarga de clave pública SSH File Format: (

También parece torcida podría estar donde debo mirar

http://www.java2s.com/Open-Source/Python/Network/Twisted/Twisted-1.0.3/Twisted-1.0.3/twisted/conch/ssh/keys.py. htm

Además, ¿por qué lo que no me permite publicar una recompensa inmediata ??

¿Fue útil?

Solución

Ok he encontrado la forma de cargarlo

from twisted.conch.ssh import keys as Keys
import base64

public_key = """\
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20101003"
AAAAB3NzaC1yc2EAAAABJQAAAgEAi+91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf
WQ0ROoJC+XIqW5vVJfgmr+A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu
WkLKFK1h67q6Coc+3eOTmKrOuZbWc19YQgybdkR/GxF7XAbq4NCGNaCDtMOqX8Q2
L/a9fAYqVdTwg9trpcz3whNmdLk/B0edOABKuVX51UdLV+ZggK503+uAb1JiIIj0
mARwR/HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4+YmsrLJb/TpfJeXA
vj4KZMNJv15YXz7/iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b/lX9SJ
SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF/QXOcxWFJkZoj36rvMd9n
Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0
MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ+7I
MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I/iEC58ekdrH35tq5+1ilW
dkk9+rrhUy4qrZ+HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10
o+TPSK8=
---- END SSH2 PUBLIC KEY ----"""

key_data = ''.join(public_key.splitlines()[2:-1])# remove begin, end tags and comment
blob = base64.decodestring(key_data)
key = Keys.Key._fromString_BLOB(blob)

Otros consejos

Me puede pensar en por lo menos dos opciones relativamente simples

  1. Uso OpenSSL (o pyOpenSSL) para convertir el BER a PEM
  2. Uso paramiko, retorcidos o cualquier otra aplicación Python SSH para el trabajo con las teclas directamente
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top