加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 10:34:09 所属栏目:Python 来源:网络整理
导读:我有以下代码: ssh_key = paramiko.RSAKey.from_private_key_file(key_filename) 键看起来像这样: -----BEGIN OPENSSH PRIVATE KEY-----b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcnNhAAAAAwEAAQAAAQEAqdgmJ2AQlmvpCsDWjbpIvI
我有以下代码:

ssh_key = paramiko.RSAKey.from_private_key_file(key_filename)

键看起来像这样:

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
NhAAAAAwEAAQAAAQEAqdgmJ2AQlmvpCsDWjbpIvIrx4AwtKn2t10wmGZIN9pqcJgQpo3HD

并且有效:

$ssh-keygen -l -f <mykeyfile>
 $2048 SHA256:x8jlUAObU3q2KXRtuGpxwhnGvB/ZoeD2IUqSA1OkCmI thomas@Thomas-MBP-2017 (RSA)

但是我收到以下错误:

not a valid RSA private key file

这是在MacOS,Python 2.7,Paramiko 2.4.2上

我究竟做错了什么?

解决方法

对于OpenSSH 7.8,您必须欺骗它.运行ssh-keygen -p [-f file] -m pem据称改变密码,但重用旧密码.如果要避免提示,请使用-P oldpw -N newpw,如脚本中所示,但请注意让密码对其他用户可见.作为副作用,它以’old'(OpenSSL兼容且因此paramiko兼容)格式重写密钥文件(如果不是ed25519). (如果要保留新格式文件,请先复制.)

对于旧版本的OpenSSH,只需执行ssh-keygen -p [-f file] WITHOUT -o.

此外,如果你有(或得到)它,PuTTY套件中的puttygen实用程序从0.69起支持这种格式.在Unix版本中,只需执行puttygen newfmtfile -O private-openssh -o oldfmtfile(再次使用ed25519).在Windows版本AFAICT中,您必须使用GUI;加载newfmtfile并执行Conversions / Export OpenSSH密钥.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读