在rhel7 Linux 上使用whick 密钥环后端以避免在存储凭证时使用额外的密码?

Dr.*_*ade 5 python-3.x python-keyring rhel7

我安装了以下软件包(并非所有软件包都可以在两个平台上安装):

  • Python 3.5.4 :: Anaconda 自定义(64 位)
  • 钥匙圈 9.3.1
  • keyring_jeepney 0.2
  • 钥匙圈.alt 1.2
  • 秘密存储 2.3.1

在 Windows 7 机器上:

Window 7
Run Code Online (Sandbox Code Playgroud)

在 RHEL7 Linux 机器上:

$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.3 (Maipo)

$ cat /proc/version
Linux version 3.10.0-514.26.2.el7.x86_64 (sandman@node3res7) (gcc version 4.8.5 20150623 (SuSE 4.8.5-11) (GCC) ) #1 SMP Tue Jul 4 13:45:36 UTC 2017
Run Code Online (Sandbox Code Playgroud)

在 Windows 上,登录名和密码按预期存储在安全的旧版本中,无需任何其他密码。我认为 WinVaultKeyring 只有在正确的用户登录时才能解锁,前提是我正确理解了所有内容:

>>> from keyring import get_keyring

>>> get_keyring()

<keyring.backends.Windows.WinVaultKeyring object at 0x000000000361CAC8>
Run Code Online (Sandbox Code Playgroud)

在 Linux 上,它有点不同,当您开始存储登录名和密码时,会询问额外的密码。每次我需要访问登录+密码时,都会请求最后一个密码:Please enter password for encrypted keyring:

你可以看到系统存储 keyring.backends 是不同的:

>>> from keyring import get_keyring

>>> get_keyring()

<EncryptedKeyring at /home/Cxxxx/.local/share/python_keyring/crypted_pass.cfg>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我应该在 Linux RHEL7 上使用哪个密钥环后端来避免这个额外密码问题来访问使用密钥环存储的登录名和密码?哪个实际的后端似乎无法禁用它(我尝试使用与 linux 相同的密码或论坛上建议的空密码,但这些都不起作用。我没有基于安装的管理员权限包,但我可以毫无问题地安装 python 包。我查看文档https://pypi.python.org/pypi/keyring但没有找到我正在查看的信息。原因是我需要运行一些使用 cron 作业编写代码,我需要访问几个密码:代理、api 和数据库。

小智 0

这实际上只是帮助我连接点: https: //pypi.org/project/keyring/#linux

我在 RHEL 环境中逐字使用了他们的第一个代码示例,并取得了成功:

>>> import keyring
>>> keyring.set_password("system", "username", "password")
>>> keyring.get_password("system", "username")
Run Code Online (Sandbox Code Playgroud)

看起来命令行实用程序也随以下一起发送:

$ keyring --help
$ keyring set system username
$ keyring get system username
Run Code Online (Sandbox Code Playgroud)

如果您还没有进一步相处,希望这会有所帮助。

  • 不幸的是,它没有告诉我们这里使用的是哪个后端。它很可能是一个纯文本后端,根据 OP 安装的内容(jeepney、secretstorage 等),这里不需要它。 (2认同)