GPG签名未使用gpg-connect-agent的密钥

3
我正在尝试将Windows 10中的PGP密钥分享到使用Ubuntu 20.04的WSL 2中。我正在使用这个工具:https://github.com/BlackReloaded/wsl2-ssh-pageant。目前情况是,通过gpg-connect-agent 'keyinfo --list' /bye可以列出所有我的Windows GPG密钥,但是通过gpg --list-keys返回一个空列表。请注意保留HTML标签,但不要写解释。
$ gpg-connect-agent 'keyinfo --list' /bye
S KEYINFO 9BD09C... D - - - P - - -
S KEYINFO BBF58D... D - - - P - - -
S KEYINFO D62ED0... D - - - P - - -
OK

尝试签名时出现“无秘钥”错误,但我认为这是正常的,因为gpg --list-keys为空:echo "test" | gpg --sign -u mail@none.com

有什么线索可以解决这个问题吗?

gpg和gpg-connect-agent有什么关系?

设置:

  1. 使用`wsl --shutdown'启动全新的WSL 2会话
  2. 删除'S.gpg-agent'文件
  3. 使用setsid socat UNIX-LISTEN:$GPG_AGENT_SOCK,fork EXEC:"${WSL_TOOLS}/wsl2-ssh-pageant.exe --gpg S.gpg-agent",nofork &创建管道
1个回答

1

您需要将您的公钥导入到WSL中。

https://wiki.gnupg.org/AgentForwarding所述:

请注意,为了正常工作,远程系统上的GnuPG仍然需要您的公钥。

步骤:

  1. 在Windows上,使用gpg --export -a 'mail@none.com' > public.key导出您的公钥;
  2. 在WSL上,使用gpg --import public.key导入您的公钥。

1
如果能描述如何实现,即使维基链接失效,这将是一个更有力的答案,仍然有用于未来。 - Charles Duffy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接