使用 GPG 密钥签署提交
PhpStorm 依赖于 Git 的内置GPG 提交签名功能。为了获得最佳体验,我们建议使用带有图形界面的gpg2包来处理密码提示。
配置环境
设置 GPG 支持
执行以下操作之一:
下载并安装最新的GitForWindows版本(您需要 2.19.2 或更高版本)。预配置的 GPG 是软件包的一部分。
要验证所有设置是否正确,请打开 GitBash,运行
gpgconf
命令并确保输出如下所示:gpg:OpenGPG:/usr/bin/gpg gpg-agent:私钥:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr :网络:/usr/bin/dirmngr pinentry:密码输入:/usr/bin/pinentry通过运行命令确保 pinentry 显示 GUI 提示
echo GETPIN | pinentry
。下载并安装Gpg4Win包,并通过执行以下操作确保它
git config gpg.program
指向gpg.exe
包中的文件:运行
where 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:私钥:/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:密码输入:/usr/local/bin/pinentry-mac通过运行命令确保 pinentry 显示 GUI 提示
echo GETPIN | pinentry
。
设置 GPG 支持
gpg2
使用 Linux 发行版附带的包管理器进行安装。软件包的确切列表将根据您使用的发行版而有所不同,最重要的是gnupg2、gnupg-agent和一个显示 GUI 提示的pinentry 。例如,在 Ubuntu/Debian 上,运行
sudo apt -y install gnupg2 gnupg-agent pinentry-gnome3
.要验证所有设置是否正确,请打开终端,运行
gpgconf
命令并确保输出如下所示:gpg:OpenPGP:/usr/bin/gpg gpg-agent:私钥:/usr/bin/gpg-agent scdaemon:Smartcards:/usr/lib/gnupg/scdaemon gpgsm:S/MIME:/usr/bin/gpgsm dirmngr :网络:/usr/bin/dirmngr pinentry:密码输入:/usr/bin/pinentry确保pinentry使用该命令显示 GUI 提示
echo GETPIN | pinentry
。
设置 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
.
启用提交签名
启动 PhpStorm(或重新启动它以确保它加载您对环境所做的更改)。
在设置/首选项对话框 ( Ctrl+Alt+S) 中,转到版本控制 | Git,然后单击配置 GPG 密钥按钮。
在打开的对话框中,单击使用 GPG 密钥签署提交,然后从列表中选择要使用的密钥。
现在,您的每个提交都将使用选定的密钥进行签名。
将 GPG 密钥添加到您的帐户
如果您使用的 Git 托管支持 GPG 签名验证,请在此处上传密钥的公共部分。
按照说明进行操作