PhpStorm 2021.3 Help

使用 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包中的文件:

      1. 运行where gpg

      2. 如果输出返回多个可执行文件,请从 Gpg4Win 中找到一个(默认情况下,路径为C:\Program FIles (x86)\GnuPG\bin\gpg.exe

      3. 运行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 支持

  1. gpg2使用 Linux 发行版附带的包管理器进行安装。软件包的确切列表将根据您使用的发行版而有所不同,最重要的是gnupg2gnupg-agent和一个显示 GUI 提示的pinentry 。

    例如,在 Ubuntu/Debian 上,运行sudo apt -y install gnupg2 gnupg-agent pinentry-gnome3.

  2. 要验证所有设置是否正确,请打开终端,运行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 密钥

如果还没有密钥,则需要生成一个新密钥对。

  1. 打开终端/命令提示符/GitBash/您系统上的任何其他 shell并运行以下命令:(gpg --full-generate-key对于 pgp 2.1.17 及更低版本,请使用该gpg --gen-key命令。

  2. 回答工具将返回的问题。推荐的选择是:

    • 密钥类型:RSA

    • 密钥大小:至少 4096 位

    • 密钥有效期:1 年(最好每年轮换一次密钥)

  3. 输入您的用户 ID 信息。建议使用与提交作者相同的用户名和电子邮件地址。如果您计划将签名与电子邮件地址隐私功能一起使用,请指定 GitHub noreply 电子邮件地址。

  4. 输入安全密码。确保在应弹出的对话框中输入它,而不是在命令行中输入它,因为 GUI 用于此类提示很重要。

  5. 通过运行以下命令确保已导入密钥:gpg --list-keys.

启用提交签名

  1. 启动 PhpStorm(或重新启动它以确保它加载您对环境所做的更改)。

  2. 设置/首选项对话框 ( Ctrl+Alt+S) 中,转到版本控制 | Git,然后单击配置 GPG 密钥按钮。

  3. 在打开的对话框中,单击使用 GPG 密钥签署提交,然后从列表中选择要使用的密钥。

现在,您的每个提交都将使用选定的密钥进行签名。

将 GPG 密钥添加到您的帐户

如果您使用的 Git 托管支持 GPG 签名验证,请在此处上传密钥的公共部分。

按照说明进行操作

最后修改:2021 年 9 月 24 日