您尚未登录。

#1 2023-04-02 11:50:52

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

我最近打算通过 SSH 转发 GPG Agent 的 socket。在 wiki:GnuPG#Forwarding gpg-agent and ssh-agent to remote 中提到

gpgconf --list-dirs agent-ssh-socket

但我这边显示的是形如

/run/user/1001/gnupg/d.abcabcabcabc/S.gpg-agent

的路径。其中 S.gpg-agent 不在 gnupg 中,而是在其子目录中;但我查看此目录发现这个子目录中并没有 socket 文件。

systemctl --user status gpg-agent.socket

也显示其管辖的文件应是 gnupg/S.gpg-agent。我在 GnuPG 选项列表 里没看到能自定义这个路径的。请问我如何 debug?

最近编辑记录 Franklin Yu (2023-04-06 13:27:58)

离线

#2 2023-04-02 13:02:18

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,463
个人网站

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

gpgconf --list-dirs agent-socket 呢?

离线

#3 2023-04-03 08:22:39

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

不好意思,我打錯了,我之前執行的命令就是 agent-socket big_smile 如果打 SSH socket 出來的則是這個:

/run/user/1001/gnupg/d.19dny8pcrzpq1uj8ykkupwfr/S.gpg-agent.ssh

离线

#4 2023-04-03 10:13:17

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,463
个人网站

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

怪哦。你直接 gpgconf -L 看看?

离线

#5 2023-04-03 11:36:30

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

這個 -L 倒是方便了。

sysconfdir:/etc/gnupg
bindir:/usr/bin
libexecdir:/usr/lib/gnupg
libdir:/usr/lib/gnupg
datadir:/usr/share/gnupg
localedir:/usr/share/locale
socketdir:/run/user/1001/gnupg/d.abcabcabcabc
dirmngr-socket:/run/user/1001/gnupg/d.abcabcabcabc/S.dirmngr
agent-ssh-socket:/run/user/1001/gnupg/d.abcabcabcabc/S.gpg-agent.ssh
agent-extra-socket:/run/user/1001/gnupg/d.abcabcabcabc/S.gpg-agent.extra
agent-browser-socket:/run/user/1001/gnupg/d.abcabcabcabc/S.gpg-agent.browser
agent-socket:/run/user/1001/gnupg/d.abcabcabcabc/S.gpg-agent
homedir:/home/franklinyu/.local/share/gnupg

感覺 socketdir 是關鍵?另外有幾個疑點:

  • 我機器上沒有 /etc/gnupg 這個目錄;homedir 裏面也沒有 *.conf(我看文檔說可能會有 gpg.conf 和 gpgconf.conf),只有 private-keys-v1.d、pubring.kbx、trustdb.gpg。

  • user service “gpg-agent.service” 狀態是 inactive (dead),但我有一個 gpg-agent 的進程,其父進程是 systemd(pid 1),其用戶是我。

更新:這個問答似乎表示 socket 目錄是無法更改的?讓人更疑惑了。

最近编辑记录 Franklin Yu (2023-04-03 12:37:32)

离线

#6 2023-04-03 12:58:08

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,463
个人网站

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

原来如此,是你自己启动的 gpg-agent 啊。
你不要自己启动就好了嘛。systemd 启动的时候,套接字是由 systemd 监听并传给 gpg-agent 的,所以路径不一样。

离线

#7 2023-04-03 13:04:56

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

我剛剛試了一下重啓,這個 gpg-agent 並沒有啓動。但 gpgconf 仍然輸出的是這個奇怪的路徑,所以 gpgconf 的問題應該和「我是否有啓動 gpg-agent」無關

离线

#8 2023-04-03 13:54:13

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,463
个人网站

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

哦,你的 homedir 不是默认的。

离线

#9 2023-04-06 11:34:46

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

確實,但我覺得應該和我碰到的問題無關?

离线

#10 2023-04-06 12:11:19

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,463
个人网站

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

中间多出来的那串就是你的 gpg homedir 的 hash 啦。

离线

#11 2023-04-06 13:27:27

Franklin Yu
会员
注册时间: 2023-02-24
帖子: 10

Re: 【已解決】GnuPG 的 agent socket 在 Arch 下的路径不是标准路径

多謝指南,我找到Wiki的相關描述了。我去 Stack Overflow 上評論一下。

离线

页脚