【问题标题】:GPG Can't connect to S.gpg-agent: Connection RefusedGPG 无法连接到 S.gpg-agent:连接被拒绝
【发布时间】:2020-03-27 12:26:42
【问题描述】:

我正在尝试使用 gpg 代理设置 gpg 预设密码短语缓存,以便我可以自动化我的文件加密过程。为了让 gpg-agent 运行并正确缓存密码,似乎需要有一个位于 ~/.gnupg/ 目录中的 S.gpg-agent 套接字,该套接字在根目录中生成设置 gpg 和 gpg-agent 时的目录。

我所做的(过去似乎可行)是我将以 root 身份启动所有内容,并将 /.gnupg 目录的内容复制给我的特权较低的用户,并授予对该套接字和目录的权限用户。我为启动 gpg-agent 守护进程和缓存密码而运行的命令:

gpg-agent --homedir /home/<user>/.gnupg --daemon
/usr/libexec/gpg-preset-passphrase --preset --passphrase <passphrase> <keygrip>

gpg-agent 进程似乎运行良好,但我从第二行收到以下错误:

gpg-preset-passphrase: can't connect to `/home/<user>/.gnupg/S.gpg-agent': Connection refused
gpg-preset-passphrase: caching passphrase failed: Input/output error

我已确保套接字存在于具有适当权限的目录中,并且此进程以 root 身份运行。即使我复制和修改权限,这个套接字似乎仍然与 root 绑定。所以我的问题是

  1. 这个套接字究竟是如何初始化的?
  2. 有没有办法以其他用户的身份手动执行此操作?

补充一点,代理进程似乎对两个用户都运行得很好,但我有点模糊的是 gpg-preset-passphrase 是如何使用套接字的,如果是它,或者代理拒绝连接到 @ 987654325@ 我还假设我不需要显式启动代理,但我想我会这样做,以便我可以设置任何值,例如 homedir(如果需要)。

【问题讨论】:

  • gpg-agent 通常应该作为守护进程运行,而不是手动调用。请参阅 gnupg.org/documentation/manuals/gnupg/…linux.die.net/man/1/gpg-agent。提示:你的 gpg.conf 文件中有指令use-agent 吗?另一个提示:GNOME Keyring 可能正在您的系统上运行并产生干扰。
  • 谢谢,我相信默认情况下它会使用代理。我看了看,找不到任何运行的密钥环实例,此外,当我以 root 身份运行时,gpg-agent 似乎能够使用该套接字。这似乎仍然是权限问题吗?
  • 我会说它适用于 root,因为它在自己的 shell 和自己的上下文中运行。但我会检查 /home//.gnupg/ 中所有文件的权限。确保在您的主目录中以 root 身份运行 gpg-agent 时没有添加具有 root 权限的文件。你可以擦 S.gpg-agent。
  • 尝试了一些删除套接字并重新创建它的方法,以及 .gnupg 目录。我以 root 身份安装了 gpg 包,也许这可能与它有关,其中 root 对我的用户尝试访问的某些二进制文件拥有所有权?
  • 您使用的是 GnuPG v1 还是 v2 ? gpg-agent --versiongpg --version 的输出是什么?

标签: gnupg pgp gpg-agent


【解决方案1】:

事实证明,该问题与gpg-agentgpg-preset-passprhase 无关。

注意:这不是永久解决方案,但它确实让我克服了我所面临的问题。

修改/etc/selinux/config并禁用SE Linux后,我不再遇到上述权限问题。 SE Linux 是 Red Hat 开发的 Linux 内核安全模块(我目前在 RHEL7 上运行)。看来下一步可能是确保允许我的用户使用audit2allow 访问这些二进制文件和包。在这里了解更多信息:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/security-enhanced_linux/sect-security-enhanced_linux-fixing_problems-allowing_access_audit2allow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    相关资源
    最近更新 更多