4

问题:

我想keyring在无头 Linux 环境中使用 python 的库,特别是 Debian 9 GCP 计算实例。我有一个 cron 作业,它经常醒来以运行 python 脚本(......它利用密钥环来检索各种资源的密码)。

问题是 python 脚本会keyring在允许 python 脚本继续之前提示用户输入密码。这不起作用,因为脚本作为后台 cron 进程执行。有趣的是,在 Windows 环境中运行相同的脚本不是问题,可能是因为进程(用户)已经过身份验证。

研究:

我只找到了一篇 StackOverflow 帖子(此处)和官方在线文档(此处- '在无头 Linux 系统上使用密钥环'),其中有一小节介绍了如何在无头 linux 环境中运行密钥环。

StackOverflow 帖子介绍了如何使用pgcli.但不是任何任意命令行工具(例如我的 python 脚本)来执行此操作,因此我发现它没有帮助。

同样,我也无法成功重现文档中的步骤(感觉好像缺少步骤?)。明确地说,在做之后dbus-run-session -- sh,我运行gnome-keyring-daemon --unlock,但 dbus-run-session 似乎只是挂起并且似乎没有执行任何东西)。

问题:

1)鉴于我的上述情况,是否有人可以提供有关如何keyring在无头 Debian Linux 环境中运行的明确说明?明确 - 没有密码提示。如果可能的话,我真的很感激非常明确的分步说明。

2) 如果没有,我正在使用keyring检索各种资源的密码(例如 postgres、远程 API 密钥等)。我希望将它们保存在密钥环中,但如果不可能,推荐的替代方案是什么?我阅读了一些有关在环境变量中存储诸如此类数据的 StackOverflow 帖子,但不建议这样做。我也觉得创建一个配置文件然后加密它似乎很重。


任何帮助表示赞赏。非常感谢你 -

4

1 回答 1

1

我刚刚按照您指出的说明进行了尝试,并且它们起作用了。gnome-keyring-daemon --unlock没有挂起,它正在从标准输入读取您的密码,即您需要输入完成密码并按 Ctrl-D。因此,您输入的换行符似乎不会成为密码的一部分。

似乎第一次运行它时,您正在设置密码。在随后的运行中,如果密码错误,gnome-keyring-daemon 没有反馈,但显然您的程序稍后将无法连接。

于 2018-12-23T21:24:25.010 回答