3

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

4

1 回答 1

0

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

PKeyobject 有一个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)

从字符串中获取后如何在 paramiko 中包含私钥?

于 2012-09-12T23:58:03.133 回答