我花了好长时间才找到 Kleopatra 在 Windows 10 专业版上创建的 GPG 密钥。第一个密钥由 Thunderbird 和 Enigmail 使用。第二个密钥由 Git 用于提交签名。密钥在 Kleopatra GUI 中显示正常。
Thunderbird 和 Enigmail 密钥工作正常。我整周都在签名、加密和验证。Git 密钥是新的,但我一直无法使用它们,因为我不知道它们位于何处。
Kleopatra 不显示或设置文件路径,如 gpg.conf 或 secring.gpg。我发现最接近的是 Kleopatra 密钥详细信息,它只显示“本地”。
密钥不位于~/.gnupg
(从 Git Bash 终端):
DESKTOP-P8D3DKA MINGW64 ~/.gnupg
$ gpg --list-keys
DESKTOP-P8D3DKA MINGW64 ~/.gnupg
$
%APPDATA%
钥匙不在我的 GnuPG 密钥存储在哪里?和Windows XP 中的密钥环位置在哪里。
DESKTOP-P8D3DKA MINGW64 ~/.gnupg
$ find "C:\\Users\\Jeff W\\AppData" -name '*.gpg'
C:\Users\Jeff W\AppData/Roaming/gnupg/trustdb.gpg
DESKTOP-P8D3DKA MINGW64 ~/.gnupg
$
我也把克利奥帕特拉放在进程探索器我没有看到它访问钥匙圈(尽管它显示了公司员工的 220 多把钥匙)。
我的第一个问题是,为什么配置信息被隐藏,而不是突出显示?(这个问题已经存在 10 多年了。有足够的机会来解决它)。
我的第二个问题是,Kleopatra 密钥在哪里?(我想将提交签名密钥移进去,~/.gnupg
以便 Git 可以使用它)。
可能有帮助:
$ gpg --version
gpg (GnuPG) 1.4.22
...
Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
$ ls ~/.gnupg/
gpg.conf pubring.gpg secring.gpg trustdb.gpg
答案1
追踪进程监控揭示了 Kleopatragpg-agent.exe
通过 TCP 与 a 进行通信。这就是为什么你看不到 Kleopatra 访问密钥环本身。
所有 Gpg4win 工具都会%APPDATA%\GnuPG
按照Gpg4win 文档, 章节个人用户设置。所以,这不是什么秘密。但是,作为示例给出的扩展适用于 Win7。在 Win10 中,这现在转换为C:\Users\<user>\AppData\Roaming\gnupg
。
git 使用的 MinGW 有自己的生态系统,不幸的是 MinGW 附带的 gpg 使用不同的主目录。从打印输出中可以看到,该 gpg 的主目录在Win10 下~/.gnupg
转换为。C:\Users\<user>\.gnupg
虽然可以调整 gpg 以使用不同的主目录,但在我看来,最简单的解决方案是让 git 使用 Gpg4win 附带的 gpg.exe,而不是 MinGW 捆绑的那个。这在在 Windows 上为 Git 配置 GPG:
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"