我正在检查用Python编写的用于生成RSA公共私钥对的代码。Python中的加密RSA
它会生成密钥对,但是在代码结束时它会再次运行ssh-keygen。我不知道为什么这样做。由于RSA.generate()本身会生成我们导出到两个单独文件中的密钥对。为什么需要再次运行ssh-keygen?
下面是从几行代码:
keypair = RSA.generate(1024, randfunc)
with open("pub", "w") as pubfile, open("id_rsa", "w") as privfile:
privfile.write(keypair.exportKey())
pubfile.write(keypair.publickey().exportKey())
system("ssh-keygen -m PKCS8 -i -f pub > id_rsa.pub && rm pub")
文件酒馆将存储的公钥和id_rsa将存储从RSA.generate()函数生成密钥对的私钥。
现在,它为什么在最后运行ssh-keygen命令?
此外,它不会为-i参数输入任何输入文件,并且-f参数采用名称pub,它是已生成的公钥。
执行的代码后,我得到两个文件,id_rsa和id_rsa.pub
id_rsa是()使用RSA.generate生成的私钥,但id_rsa.pub ssh-keygen命令的结果存储。
我需要一些帮助来理解在脚本结尾处调用ssh-keygen的原因以及传递给ssh-keygen的参数。 -i应该传递一些值并且-f应该有输出文件名而不是输入。
注意:我读到这样做是为了使用ssh-keygen将公钥从OpenSSL格式转换为OpenSSH格式,以便它以ssh-rsa而不是BEGIN PUBLIC KEY开头。
这是否意味着相应私钥的格式也应该改变?
因为它开始,
BEGIN PRIVATE KEY