我在 Windows 上的 gpgconf 文件在哪里?

Woo*_*low 7 windows gpg4win gnupg windows-10

随着 GitHub 最近宣布他们支持 GPG 验证,我决定在我的机器上设置 GPG。

不幸的是,每次我签署提交时,GPG 都会输出以下有关不安全内存的消息。

gpg: WARNING: using insecure memory!
gpg: please see http://www.gnupg.org/documentation/faqs.html for more information
Run Code Online (Sandbox Code Playgroud)

我已经阅读了这篇博文,解释了这条消息的全部内容。在 linux 中解决此问题的最简单方法是将二进制文件的 uid 设置为 root 用户(并且 GPG 在设置安全内存空间后显然会降级)。

不幸的是,似乎没有一种安全的方法可以在 Windows 中正确解决该问题。我已经决定我愿意接受在不安全内存中操作的风险,但我想取消每次签署提交时显示的消息。

我想将该no-secmem-warning选项添加到我的用户级 GPG 配置文件(或添加到系统范围的配置,如果不可能),但我实际上不知道相关文件在 Windows 上的位置(或如果它们不存在,我应该创建它们)。

我使用的是 Windows 10。我使用gpg4win在我的机器上安装它。我的安装似乎不包含gpg-option二进制文件(当我gpg-option从 powershell运行时,它说找不到该程序)。我的 gpg 配置文件在哪里?

Dav*_*ill 13

我的 gpg 配置文件在哪里?

22.1 个人用户设置

每个用户的个人设置可以在文件夹中找到:

%APPDATA%\gnupg
Run Code Online (Sandbox Code Playgroud)

通常,这是以下文件夹:

C:\Documents and settings\<name>\Application data\gnupg\
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个隐藏文件夹。要使其可见,您必须在 Explorer Extras -> 文件夹选项菜单的选项卡视图中激活显示组隐藏文件和文件夹下的所有文件和文件夹选项

该文件夹包含所有个人 GnuPG 数据,因此包含私钥、证书、信任设置和配置。卸载 Gpg4win 时不会删除此文件夹。请确保定期备份此文件夹。

Gpg4win 中的文件和设置


进一步阅读


Jam*_*mie 11

我知道这个问题早已得到解答,OP 也早已从这个问题中转移出来,但是在接受的答案中存在一些“陷阱”,所以我将添加这个问题,以消除发现此问题的人的任何困惑稍后回答。

第一件重要的事情是您是否安装了 GnuPG,或者您正在使用与 Windows 版 Git 一起安装的 GnuPG。我知道OP安装了单独的一个。

如果您使用的是与https://www.gnupg.org/https://gpg4win.org/分开安装的版本,则 config 文件夹位于 %APPDATA%\gnupg 中。

在 Windows XP 上(您绝对不应该使用它),默认值为C:\Documents and Settings\%USERNAME%\Application Data\gnupg.

在当今可能使用的任何 Windows 版本上,默认值为C:\Users\%USERNAME%\AppData\Roaming\gnupg.

不过,最大的问题是 Git 还安装了自己的 GnuPG (gpg.exe) 版本,并默认使用它。Git 自带的版本使用%USERPROFILE%\.gnupg. 在现代版本的 Windows 上,这将是C:\Users\%USERNAME%\.gnupg.

概括


使用您安装的 GnuPG

如果您想使用单独安装的 GnuPG,则需要告诉 Git 也使用该 GnuPG。操作方法如下:

git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"
Run Code Online (Sandbox Code Playgroud)

另外,请确保该目录之前位于您的路径中C:\Program Files\Git\usr\bin,以免其他软件意外使用错误的目录。

使用 Git 的 GnuPG (gpg.exe)

如果您想使用与 Git 一起安装的 GnuPG,只需卸载您安装的单独版本并参考上面的配置路径信息即可。

奖金

添加要添加的选项的方式如下:

echo 'no-secmem-warning:0:1'|gpgconf --change-options gpg-agent

然后,你真的不需要关心配置在哪里。

注意:您在网上看到的示例通常在竖线字符 (|) 和其他内容之间有一个空格。在 PowerShell 和 BASH 上,这很好。在 cmd.exe 上,您必须像上面的示例一样删除那些空格,否则 gpgconf.exe 会抱怨并且无法工作,这对于软件或开发人员来说不是理想的属性。

  • 杰出的!这就是 VS Code 找不到我从命令行创建的 gpg 密钥的原因 (2认同)