【问题标题】:Can I use ssh/scp with a private key stored in a DB?我可以将 ssh/scp 与存储在数据库中的私钥一起使用吗?
【发布时间】:2012-09-06 00:36:30
【问题描述】:

我正在开发一个 python/django 应用程序,除其他外,它需要通过 ssh/scp 将文件推送到另一台主机。为了安全起见,我想使用基于密钥的身份验证,但我想将私钥存储在 django 数据库中,而不是文件系统中。有没有办法做到这一点,除了从数据库中检索密钥,写入临时文件,然后指定该文件?

【问题讨论】:

    标签: python database ssh ssh-keys


    【解决方案1】:

    使用 paramiko,您可以做一些技巧来避免将密钥写入文件系统。 使用paramiko connect,您可以指定一个 pkey 作为参数。

    PKey 对象有一个 from_private_key 方法,该方法接受一个文件对象(StringIO 与您从数据库中提取的密钥)类似:

    f = StringIO.StringIO()
    # retreive your key from db
    f.write(your_key)
    private_key = paramiko.RSAKey.from_private_key(f)
    ssh.connect(server, username=username,pkey=private_key)
    

    How to include the private key in paramiko after fetching from string?

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2014-06-05
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 2023-03-02
      相关资源
      最近更新 更多