如何禁用python密钥环的命令行密码提示-Headless Debian Linux

时间:2018-12-17 06:45:37

标签: security python-keyring

问题:

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

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

研究:

我只发现了一篇StackOverflow帖子(here)和官方在线文档(here-“在无头Linux系统上使用Keyring”),其中有一小节介绍了如何在无头的Linux环境。

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

类似地,我无法成功复制文档中的步骤(感觉是否缺少步骤?)。明确地,在执行dbus-run-session -- sh之后,我运行gnome-keyring-daemon --unlock,但是dbus-run-session似乎挂起,似乎没有执行任何操作)。

问题:

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

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


感谢您的帮助。谢谢你-

1 个答案:

答案 0 :(得分:0)

我刚刚尝试了您所指向的说明,它们起作用了。 <qa>未挂起,它正在从stdin读取密码,即,您需要使用Enter确认密码并按Ctrl-D。因此,您输入的换行符似乎不会成为密码的一部分。

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