susdj 2023-08-22 15:21 采纳率: 0%
浏览 3

paramiko连接问题,交换机是rsa 1024产生密钥

import paramiko

key = paramiko.RSAKey.generate(1024)

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, port, username, pkey=key)
还是提示以下错误:
ValueError: p must be exactly 1024, 2048, or 3072 bits long

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-22 18:52
    关注

    【以下回答由 GPT 生成】

    问题分析: Paramiko库要求提供的RSA密钥长度必须是1024、2048或3072位。在给定的代码中,我们生成了一个1024位的RSA密钥。由于密钥的长度不符合要求,因此会出现错误。

    解决方案: 1. 检查你的需求,确定是否一定需要使用1024位的RSA密钥。如果可以使用更长的密钥长度,建议使用2048位或3072位的密钥来提高安全性。 2. 如果你的需求确实需要使用1024位的RSA密钥,那么可以尝试以下解决方案: - 使用外部工具(如openssl)生成一个1024位的RSA密钥文件,保存到本地。 - 使用Paramiko库提供的方法加载私钥文件中的密钥,并传递给SSHClient连接函数。 - 下面是一个示例代码,展示了如何加载本地密钥文件并建立SSH连接:

    import paramiko
    
    private_key_path = '/path/to/private_key'
    
    # 使用paramiko提供的方法加载私钥文件中的密钥
    key = paramiko.RSAKey(filename=private_key_path)
    
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname, port, username, pkey=key)
    

    总结: 如果你的需求允许使用更长的RSA密钥,应该选择2048位或3072位来提高安全性。如果必须使用1024位的密钥,请使用外部工具生成密钥文件并使用Paramiko加载密钥文件来建立SSH连接。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 8月22日

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line