【发布时间】:2011-01-28 19:30:53
【问题描述】:
我正在尝试编写一个脚本来为我生成 SSH 身份密钥对。
from M2Crypto import RSA
key = RSA.gen_key(1024, 65337)
key.save_key("/tmp/my.key", cipher=None)
文件/tmp/my.key 现在看起来很棒。
通过运行ssh-keygen -y -f /tmp/my.key > /tmp/my.key.pub,我可以提取公钥。
我的问题是如何从 python 中提取公钥?使用key.save_pub_key("/tmp/my.key.pub") 可以节省如下内容:
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADASDASDASDASDBarYRsmMazM1hd7a+u3QeMP
...
FZQ7Ic+BmmeWHvvVP4Yjyu1t6vAut7mKkaDeKbT3yiGVUgAEUaWMXqECAwEAAQ==
-----END PUBLIC KEY-----
当我在寻找类似的东西时:
ssh-rsa AAAABCASDDBM$%3WEAv/3%$F ..... OSDFKJSL43$%^DFg==
【问题讨论】:
-
检查 pycryto,因为 exportKey 方法已经有了“OpenSSH”格式。
-
pycrypto is unmaintained and has known vulnerabilities。
pycryptodome是一个替代品。 -
我认为您的意思是
65537而不是65337。前者更为常见。 The risks associated with using other numbers are disputed,但共识是 65537(即 2^16 + 1)是安全的。 65337 不符合 NIST 标准。
标签: python ssh m2crypto ssh-keys