有没有办法使用Python从私有密钥生成公共SSH密钥?

时间:2010-10-06 19:20:46

标签: python ssh-keys

...如果没有,您能否为我提供完整算法的链接或RFC编号(从获取ASCII编码的私钥文件/字符串到生成ASCII编码的公钥文件/字符串)。

为了向您展示更大的图片 - 我开始使用pylibssh2库。这个库有一个方法--userauth_publickey_fromfile(它引发NotImplementedException,但是当你强制启动python绑定时 - 它可以工作)。问题是这个方法需要私钥(好)和公钥(地狱知道原因)。当然,我可以将这两个键作为论证传递给我的函数,但我认为这是不必要的,而且我不想仅仅为此而期待一个变量。所以我想自己从私人公钥中生成公钥。

也许我在pylibssh2中甚至在libssh2中都缺少一些东西(我也可以为它编写绑定)?

感谢您的帮助!

3 个答案:

答案 0 :(得分:2)

你需要答案是严格的python吗?您可以使用ssh-keygen -y -f privatekey

执行此操作

答案 1 :(得分:0)

我不知道你是如何让userauth_publickey_fromfile()工作的,但根据http://github.com/wallix/pylibssh2/blob/master/libssh2/session.py,这种方法需要密钥文件的路径,而不是密钥本身。

如果私钥是您的,那么公钥和私钥都应该驻留在〜/ .ssh目录中。

私钥和公钥只能成对创建。如果您能够设法从另一个派生出其中一个,那么加密领域就会爆炸。

必须使公钥可用于SSH连接的另一端。因此,除了私钥之外,此方法还需要它。

答案 2 :(得分:0)

x = int(y)