有办法用Python从私钥生成公钥吗?

0 投票
3 回答
1555 浏览
提问于 2025-04-16 05:06

... 如果没有的话,你能给我提供一个链接或者RFC编号,告诉我完整的算法吗?这个算法是从获取ASCII编码的私钥文件/字符串到生成ASCII编码的公钥文件/字符串的。

让我给你一个更清楚的背景 - 我开始使用一个叫pylibssh2的库。这个库有一个方法叫做userauth_publickey_fromfile(虽然它会抛出NotImplementedException错误,但如果你强行运行Python绑定,它是可以工作的)。问题是这个方法需要私钥(这很好理解)和公钥(我真不知道为什么)。当然,我可以把这两个密钥作为参数传递给我的函数,但我觉得这样做没必要,我也不想为了这个再多一个变量。所以我想自己从私钥生成公钥。

也许我在pylibssh2或者libssh2本身上漏掉了什么(我也可以为这个写绑定)?

谢谢任何帮助!

3 个回答

0

这段代码是用来处理某些特定任务的。它可能涉及到一些数据的操作或者是与用户交互的功能。具体来说,代码块中的内容会根据不同的输入或条件,执行相应的操作。

如果你是编程新手,可以把这段代码想象成一个小工具,它会根据你给它的信息来做事情。比如说,如果你输入一个数字,它可能会告诉你这个数字是奇数还是偶数,或者是进行一些计算。

总之,这段代码的目的是为了让计算机能够理解你的指令,并根据这些指令来完成特定的任务。

import commands
cmd = "ssh-keygen -y -f %s" % (file)
return commands.getstatusoutput(cmd)[1]
0

我不知道你是怎么让 userauth_publickey_fromfile() 这个函数工作的,但根据这个链接,这个方法需要的是密钥文件的路径,而不是密钥本身。

如果私钥是你的,那么公钥和私钥都应该放在你的 ~/.ssh 目录下。

私钥和公钥是成对生成的。如果你能从一个密钥推导出另一个,那就会引发一个加密世界的大爆炸。

公钥必须提供给SSH连接的另一方。因此,这个方法除了需要私钥外,还需要公钥。

2

你需要答案一定要用Python吗?其实你可以用这个命令来实现:ssh-keygen -y -f privatekey

撰写回答