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

2024-06-16 10:53:16 发布

您现在位置:Python中文网/ 问答频道 /正文

。。。或者,如果没有,您能提供完整算法的链接或RFC号(从获取ASCII编码的私钥文件/string到生成ASCII编码的公钥文件/string)。在

为了给你看一个更大的图片-我开始使用pylibssh2库。这个库有一个方法-userauth_publickey_fromfile(它引发NotImplementedException,但是当您强制启动python绑定时,它可以工作)。问题是这个方法需要私钥(good)和公钥(hell know why)。当然,我可以将这两个键作为参数传递给我的函数,但我认为这是不必要的,我不希望再为此期望一个变量。所以我想自己从私钥生成公钥。在

也许我在pylibssh2甚至libssh2本身中遗漏了一些东西(我也可以为此编写绑定)?在

谢谢你的帮助!在


Tags: 文件方法算法编码string链接rfcascii
3条回答
import commands
cmd = "ssh-keygen -y -f %s" % (file)
return commands.getstatusoutput(cmd)[1]

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

如果私钥是您的,那么公钥和私钥都应该位于~/.ssh目录中。在

私钥和公钥只能成对创建。如果你能设法从另一个中得到一个,密码世界就会爆炸。在

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

你需要严格按照python来回答吗?您可以使用ssh-keygen -y -f privatekey

相关问题 更多 >