使用 GPG 密钥签署提交
最后修改时间:2023 年 9 月 8 日PyCharm 依赖于 Git 的内置GPG 提交签名功能。为了获得最佳体验,我们建议使用带有图形界面的gpg2软件包来处理密码提示。
配置环境
设置 GPG 支持
执行以下操作之一:
下载并安装最新的GitForWindows版本(您需要 2.19.2 或更高版本)。预配置的 GPG 是软件包的一部分。
要验证所有设置是否正确,请打开 GitBash,运行命令
gpgconf
并确保输出如下所示:gpg:OpenGPG:/usr/bin/gpg gpg-agent:Private Keys:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr:Network:/usr/bin/dirmngr pinentry:Passphrase Entry:/usr/bin/pinentry
通过运行命令确保 pinentry 显示 GUI 提示符
echo GETPIN | pinentry
。下载并安装Gpg4Win软件包,并通过执行以下操作确保
git config gpg.program
指向该软件包中的文件:gpg.exe
跑步
where.exe gpg
。如果输出返回多个可执行文件,请从 Gpg4Win 中找到一个(默认情况下,路径为C:
\Program Files (x86) 。\GnuPG \bin \gpg.exe 跑步
git config --global gpg.program "path/to/gpg/from/Gpg4Win"
。
设置 GPG 支持
执行以下操作之一:
下载并安装GPGTools。预配置的 GPG 是软件包的一部分。
确保
git config gpg.program
指向包中的gpg文件(默认情况下,路径为/usr /local /MacGPG2 /bin /gpg)。下载并打开Homebrew并运行以下命令:
brew install gnupg pinentry-mac
。要验证所有设置是否正确,请打开终端,运行
gpgconf
命令并确保输出如下所示:pg:OpenGPG:/usr/local/MacGPG2/bin/gpg gpg-agent:Private Keys:/usr/local/MacGPG2/bin/gpg-agent scdaemon:Smartcards:/usr/local/MacGPG2/libexec/scdaemon gpgsm:S/MIME:/usr/local/MacGPG2/bin/gpgsm dirmngr:Network:/usr/local/MacGPG2/bin/dirmngr pinentry:Passphrase Entry:/usr/local/bin/pinentry
通过运行命令确保 pinentry 显示 GUI 提示符
echo GETPIN | pinentry-mac
。
设置 GPG 支持
gpg2
使用 Linux 发行版附带的包管理器进行安装。软件包的确切列表将根据您使用的发行版而有所不同,最重要的是gnupg2、gnupg-agent和显示 GUI 提示的pinentry 。For example, on Ubuntu/Debian, run
sudo apt -y install gnupg2 gnupg-agent pinentry-gnome3
.To verify everything is set up correctly, open the Terminal, run the
gpgconf
command and make sure the output is like the following:gpg:OpenPGP:/usr/bin/gpg gpg-agent:Private Keys:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr:Network:/usr/bin/dirmngr pinentry:Passphrase Entry:/usr/bin/pinentry
Make sure that the pinentry shows a GUI prompt using the
echo GETPIN | pinentry
command.
设置 GPG 密钥
最安全的方法是使用智能卡,例如Yubikey来存储密钥的私有部分。有关设置 Yubikey 的更多信息,请参阅YubiKey-Guide。
导入 GPG 密钥
如果您已有 GPG 密钥,则需要将它们导入到相应的 GPG 密钥环中。
打开终端/命令提示符/GitBash/系统上的任何其他 shell并运行以下命令:
gpg --import <path to your private gpg.key>
生成 GPG 密钥
如果还没有密钥,您需要生成一对新密钥。
打开终端/命令提示符/GitBash/系统上的任何其他 shell并运行以下命令:(
gpg --full-generate-key
对于 pgp 2.1.17 及更低版本,请使用该gpg --gen-key
命令。回答工具将返回的问题。推荐的选择是:
密钥类型:RSA
密钥大小:至少 4096 位
密钥有效期:1年(最好每年轮换一次密钥)
输入您的用户 ID 信息。建议使用与提交的作者相同的用户名和电子邮件地址。如果您计划将签名与电子邮件地址隐私功能一起使用,请指定 GitHub noreply 电子邮件地址。
输入安全密码。确保在弹出的对话框中输入它,而不是在命令行中输入它,因为使用 GUI 进行此类提示非常重要。
确保已通过运行以下命令导入密钥:
gpg --list-keys
。
启用提交签名
启动 PyCharm(或重新启动它以确保它加载您对环境所做的更改)。
在“设置”对话框 ( ) 中,转至版本控制 | Git,然后单击配置 GPG 密钥按钮。CtrlAlt0S
在打开的对话框中,单击使用 GPG 密钥签署提交,然后从列表中选择要使用的密钥。
现在,每个提交都将使用所选密钥进行签名。GPG 签名的状态将显示在“日志”选项卡上的“提交详细信息”窗格中。
将 GPG 密钥添加到您的帐户
如果您使用的 Git 托管支持 GPG 签名验证,请在那里上传密钥的公共部分。
请按照以下说明进行操作
感谢您的反馈意见!