Ok,首先,是的,我已经google搜索和计算器,并做了一些读数(超过4个小时就在这坐)有没有发现什么,我需要对这些原因:

  • 他们中的许多建议只是发起一个exe喜欢gpg.exe (http://stackoverflow.com/questions/1020320)

  • 有些人建议使用PyCrypto或其他图书馆和看他们,一)我找不到如何使用他们的任何API b)我找不到如何进一个预先存在的伪狂犬病毒/pub关键或c)他们使用的不安全RandomPool(和我在尝试更新这只是自寻烦恼)

  • 一些提及它在过但是我不能找到他们其中的连接(或他们没有链接。

所以我知道问你的同胞计算器用户如何才能做到这一点,需要一串的公共钥匙(或路径(我可以把它写到一个临时文件,(我的计划只是把它作为一串pub_key="..."))),并用它来签署和安全的一串(即将发布在论坛(请求更新我的应用程序)?

此外,这些都是RSA的钥匙(腻子艮4096位SSH-2-RSA)产生的使用PuttyGen(可在任何格式(正,ssh.com,ppk)

这是什么样的公共钥匙看起来像

----开始SSH2公钥----

评论:"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+7 MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6i/iEC58ekdrH35tq5+1ilW dkk9+rrhUy4qrZ+HFi7AeemybpiumbSnebvnkMaIPAOo23V8c9bq0iuxx4gizf10 o+TPSK8=

-结束SSH2公钥----

不是这个-->关键的格式似乎是PKCS1使M2Crypto不会的工作(其负载的关键功能期望PEM)

最新的阅读我认为这是SSH公钥的文件格式(RFC: http://www.ietf.org/rfc/rfc4716.txt )

我还以为下面是错误的,我不认为它处理SSH公钥的文件的格式:(

看起来也像扭曲的可能我应该看看

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

还有为什么这么不请允许我发布一个赏金吗??

有帮助吗?

解决方案

好吧,我发现了如何加载

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)

其他提示

我能想到的至少两个相对较简单的选择

  1. 使用OpenSSL(或pyOpenSSL)转换BER PEM
  2. 使用paramiko、扭曲或其他任何python SSH执行工作的钥匙直接
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top