问题:
我想在无头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帖子,但不建议这样做。我也觉得创建一个配置文件然后加密它似乎很繁重。
感谢您的帮助。谢谢你-
答案 0 :(得分:0)
我刚刚尝试了您所指向的说明,它们起作用了。 <qa>
未挂起,它正在从stdin读取密码,即,您需要使用Enter确认密码并按Ctrl-D。因此,您输入的换行符似乎不会成为密码的一部分。
似乎第一次运行它是在设置密码。在随后的运行中,如果密码错误,gnome-keyring-daemon不会提供任何反馈,但是显然您的程序以后将无法连接。