如何使用加密python模块加载openssh私钥?

2024-06-07 03:56:24 发布

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

如果我从中使用load_pem_private_key from,我将得到ValueError(“无法反序列化密钥数据。”)密码学.危险品.原语.序列化

要添加更多上下文:

我的钥匙从

-----BEGIN OPENSSH PRIVATE KEY-----

引发此错误的代码段

key = serialization.load_pem_private_key(data=private_key.encode(),
                                         password=None,
                                         backend=default_backend())

错误的回溯显示backend=default\u backend())—>;returnbackend.load_pem_私有密钥(数据,密码)在load_pem_private_key中->password,在load_pem_private_key中 ->;self.\u handle_key_loading_error()在_load_key中


Tags: 数据keyfromgtbackenddefault序列化错误
1条回答
网友
1楼 · 发布于 2024-06-07 03:56:24

pyca/cryptography主要使用OpenSSL和for private key supports mostly the formats OpenSSL supports,后者不包括OpenSSH的“new”格式。但是,它确实添加了OpenSSH公钥格式,因此询问他们添加OpenSSH private可能并不荒谬。在此期间。。。在

如果您有OpenSSH,您可以使用ssh-keygen将OpenSSH的“new”格式转换回OpenSSH的“old”格式,即OpenSSL的“传统”或“legacy”格式,即使您使新密码与旧密码相同,或者您显然想要一个未加密的文件,将新密码设为空,就像旧密码一样:

# OpenSSH 7.8 up 
ssh-keygen -f keyfile -p -m pem 
# below 7.8 
ssh-keygen -f keyfile -p # NOT -o 

或者,如果您已经安装了putty0.69,puttygen也可以这样做,尽管Windows和Unix的UI各不相同。在

重复:
SSH key generated by ssh-keygen is not recognized by Paramiko: "not a valid RSA private key file"(Paramiko在Python中是SSH)
"Invalid privatekey" when using JSch(Java,但问题相同)

相关问题 更多 >