python - 我可以将 ssh/scp 与存储在数据库中的私钥一起使用吗?

标签 python database ssh ssh-keys

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

最佳答案

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

PKey 对象有一个 from_private_key获取文件对象的方法(StringIO 以及您从数据库中提取的 key )类似于:

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?

关于python - 我可以将 ssh/scp 与存储在数据库中的私钥一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12397526/

相关文章:

git - SSHing git@github.com 显示错误/旧的 SSH key

php - Python 3 标准化 URL

sql - Oracle 更新中神秘的笛卡尔积

mysql - 需要使用不同条件从表的列中的单行中进行多次 id 计数

mysql - 在 MySQL 中将一对多关系重构为多对多 : How to formulate the query?

python - Paramiko中ssh over ssh的保持事件机制

c++ - 键鼠监听,自动化

python - 是否可以将两个图表连接起来,一个用 matplotlib.pyplot 绘制,另一个用 mplfinance 绘制成同一个图形。例如;相同的图像

python - 字符串列表到整数元组

java - 通过 JSch 在 Java 上运行 Linux 命令