python – 由Paramiko无法识别由ssh-keygen生成的SSH密钥

前端之家收集整理的这篇文章主要介绍了python – 由Paramiko无法识别由ssh-keygen生成的SSH密钥前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_301_1@我有以下代码

@H_301_1@

ssh_key = paramiko.RSAKey.from_private_key_file(key_filename)
@H_301_1@键看起来像这样:

@H_301_1@

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAqdgmJ2AQlmvpCsDWjbpIvIrx4AwtKn2t10wmGZIN9pqcJgQpo3HD
@H_301_1@并且有效:

@H_301_1@

 $ssh-keygen -l -f 
@H_301_1@但我得到“不是一个有效的RSA私钥文件错误.
这是在MacOS,Python 2.7,Paramiko 2.4.2上

@H_301_1@我究竟做错了什么?

最佳答案
Paramiko不支持“BEGIN OPENSSH PRIVATE KEY”格式(RFC 4716)密钥文件,这些密钥文件是由最新版本的OpenSSH生成的.

@H_301_1@Paramiko仅支持PEM格式密钥.要将密钥转换为PEM格式,请使用带有ssh-keygen的-m PEM switch

@H_301_1@

ssh-keygen -e -f key -m PEM > key.pem

猜你在找的Python相关文章