【问题标题】:GPG sign not using keys from gpg-connect-agentGPG 签名不使用来自 gpg-connect-agent 的密钥
【发布时间】:2021-12-18 05:18:11
【问题描述】:

我正在尝试使用 Ubuntu 20.04 使 PGP 密钥从 Windows 10 共享到 WSL 2。

我正在使用这个工具:https://github.com/BlackReloaded/wsl2-ssh-pageant

我目前的情况是,gpg-connect-agent 'keyinfo --list' /bye 列出了我所有的 Windows GPG 密钥,但gpg --list-keys 返回了一个空列表。

$ 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 & 创建管道

【问题讨论】:

    标签: gnupg ubuntu-20.04 wsl-2 openpgp


    【解决方案1】:

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

    如此处所述https://wiki.gnupg.org/AgentForwarding:

    请务必注意,要在远程系统上正常工作 GnuPG 仍需要您的公钥。

    步骤:

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

    【讨论】:

    • 如果它描述了如何这样做,这将是一个更强有力的答案,即使 wiki 链接断开,将来仍然有用。
    猜你喜欢
    • 1970-01-01
    • 2016-06-16
    • 2022-12-16
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多