使用gpg
with 时gpg-agent
,会在我的~/.gnupg
目录中创建以下套接字:
S.gpg-agent
S.gpg-agent.browser
S.gpg-agent.extra
S.gpg-agent.ssh
Run Code Online (Sandbox Code Playgroud)
我假设,S.gpg-agent
是标准的gpg-agent
插座。但是其他的有什么用呢?
我没有将 gpg 与 ssh 一起使用,也没有将 gpg 与浏览器一起使用。
它在哪里配置,这些是自动创建的?
我可以禁用它们吗?
我只需要标准 S.gpg-agent
我gnupg 2.2.12
在 Debian Buster 上使用。
该gpg-agent
可以有多重性格,并提供不同的服务。
例如,您可以停止ssh-agent
在您的机器上运行,并gpg-agent
用作替代品......只要您使用正确的套接字,S.gpg-agent.ssh
因为它必须实现正确的协议ssh
,期待讨论。为什么会那么有用?例如,直到最近,ssh
还不能使用存储在 FIDO2/U2F 中的密钥(如 Yubikeys),这只是在不久前发布的 8.2 中添加的,这使得事情变得非常简单,如https://blog.snapdragon 所述.cc/2020/02/23/direct-fido2-u2f-support-in-openssh-8-2-on-macos/
在此之前,gpg-agent
会被使用,因为gpg
它支持像智能卡一样处理的 U2F 事物。这是关于如何做到这一点的规范文档之一:https : //florin.myip.org/blog/easy-multifactor-authentication-ssh-using-yubikey-neo-tokens
现在回到gpg-agent
,其完整手册位于https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html#Invoking-GPG_002dAGENT
您可以在https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options 中找到所有选项,这些选项通常可以放在配置文件中~/.gnupg/gpg-agent.conf
我们可以学习例如:
.extra
一点,我们可以了解如何禁用它以及它的用途:Run Code Online (Sandbox Code Playgroud)--extra-socket name
默认情况下会创建额外的套接字,您可以使用此选项更改套接字的名称。要禁用套接字的创建,请使用“none”或“/dev/null”作为名称。
还要侦听给定套接字上的本地 gpg-agent 连接。这个额外套接字的预期用途是设置一个 Unix 域套接字从远程机器转发到本地机器上的这个套接字。然后,在远程机器上运行的 gpg 可以连接到本地 gpg-agent 并使用其私钥。这允许在远程机器上解密或签署数据,而无需将私钥暴露给远程机器。
.ssh
一个:
--enable-ssh-support
--enable-putty-support
OpenSSH 代理协议始终处于启用状态,但 gpg-agent 只会在给出此标志时设置 SSH_AUTH_SOCK 变量。
在这种操作方式下,agent不仅实现了gpg-agent协议,还实现了OpenSSH使用的agent协议(通过单独的socket)。因此,应该可以使用 gpg-agent 作为众所周知的 ssh-agent 的直接替代品。
gpg-agent
主要用作守护进程来请求和缓存钥匙串的密码。如果从外部程序(如邮件客户端)使用 GnuPG,这将非常有用。gnupg 带有默认启用的 systemd 用户套接字。这些插座gpg-agent.socket
,gpg-agent-extra.socket
,gpg-agent-browser.socket
,gpg-agent-ssh.socket
和dirmngr.socket
。
gpg-agent.socket
gpg 使用main连接到gpg-agent
守护进程。
gpg-agent-extra.socket
在本地系统上的预期用途是设置从远程系统转发的 Unix 域套接字。这使得可以在远程系统上使用 gpg,而无需将私钥暴露给远程系统。有关详细信息,请参阅 gpg-agent(1)。将
gpg-agent-browser.socket
允许网页浏览器来访问GPG代理守护进程。所述
gpg-agent-ssh.socket
可以通过SSH被用于由SSH-加载程序添加缓存SSH密钥。有关必要的配置,请参阅 #SSH 代理。在
dirmngr.socket
启动GnuPG的守护进程进行处理,以密钥服务器的连接。
因此,即使您不使用它们,拥有它们也没有坏处。如果您真的想确保它们不存在,您可以尝试将以下内容放入 gpg-agent 配置文件中:
extra-socket /dev/null
browser-socket /dev/null
Run Code Online (Sandbox Code Playgroud)
我没有测试过,文档没有提到,browser-socket
但这个较旧的问题有:https : //askubuntu.com/questions/777900/how-to-configure-gnupgs-s-gpg-agent-socket-location
归档时间: |
|
查看次数: |
760 次 |
最近记录: |