如何禁用 python 密钥环的命令行密码提示 - headless debian linux

S. *_*dan 6 security python-keyring

问题:

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

keyring问题是 python 脚本会在允许 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 帖子,但不建议这样做。我还觉得创建一个配置文件然后对其进行加密似乎很繁重。


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

小智 2

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

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