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

How to disable command line password prompt for python's keyring - headless debian linux

问题:

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

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

研究:

我只找到了一个 Whosebug post() and the official online documentation (here - 'Using Keyring on headless Linux systems'),其中有一小节介绍如何 运行 无头 [=58] 中的密钥环=] 环境.

Whosebug post 介绍了如何使用 pgcli 执行此操作,但没有介绍任何任意命令行工具(例如我的 python 脚本),因此我觉得它没有帮助。

同样,我也未能成功复现文档中的步骤(感觉是少了步骤?)生效。明确地说,在执行 dbus-run-session -- sh 之后,我 运行 gnome-keyring-daemon --unlock,但是 dbus-运行-session 似乎挂起并且似乎没有执行任何东西)。

问题:

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

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


感谢任何帮助。谢谢你 -

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

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