GnuPG

精选 GnuPG 常用指令与核心速查备忘单,涵盖高频用法、配置参数与实用技巧。

#🚀 入门指引

#软件 (Software)

Gpg4win 和 GPG Suite 具有特定于操作系统的功能。

有时 GPG 密钥也被称为 PGP 密钥。它们可以互换使用,因为它们遵循 OpenPGP 标准

#创建密钥对 (Create a key-pair)

生成你的密钥:

$ gpg --generate-key

...或完全配置你的密钥。

$ gpg --generate-full-keys

**注意:**选择一个强密码!加密的强度取决于你的密码强度。

#密钥管理 (Key management)

列出你的密钥:

$ gpg --list-keys

列出你的私钥:

$ gpg --list-secret-keys

导出你的公钥:

$ gpg --export --armor <ID>

导出你的私钥:

$ gpg --export-secret-key --armor <ID>

删除你的公钥:

$ gpg --delete-key <ID>

删除你的私钥:

$ gpg --delete-secret-key <ID>

#加密

#对称加密 (Symmetric)

使用密码加密:

$ gpg -c <FILE>

使用 -a 标志以 ASCII 格式加密:

$ gpg -ac <FILE>

使用 -o 标志设置输出文件路径:

$ gpg -c <FILE> -o <PATH>

使用密码解密:

$ gpg <FILE>

**注意:**选择一个强密码!加密的强度取决于你的密码强度。

#非对称加密 (Asymmetric)

使用公钥-私钥加密进行加密:

$ gpg -e -r <RECIPIENT> <FILE>

使用 -a 标志以 ASCII 输出加密:

$ gpg -ea -r <RECIPIENT> <FILE>

使用 -s 标志加密并签名:

$ gpg -se -r <RECIPIENT> <FILE>

添加多个收件人:

$ gpg -e -r <RECIPIENT1> -r <RECIPIENT2> <FILE>

使用 -o 标志设置输出文件路径:

$ gpg -e -o <PATH> -r <RECIPIENT> <FILE>

使用你的私钥解密:

$ gpg <FILE>

<RECIPIENT> 替换为你预期收件人的已导入公钥 ID。

#导入公钥 (Importing a public key)

使用文件导入:

$ gpg --import <FILE>

使用链接导入(macOS/Linux):

$ curl <WEBSITE> | gpg --import

不要忘记签名导入的密钥:

$ gpg --sign-key <ID>

#提交签名

#本地 Git 设置 (Local Git Setup)

启用 GPG 签名:

$ git config --global commit.gpgsign true

设置签名密钥:

$ git config --global user.signingkey <ID>

设置 GPG 的位置:

$ git config --global gpg.program <PROGRAM>

**注意:**你的姓名和电子邮件必须在 Git 和 GnuPG 上匹配。

#GPG 程序列表

<PROGRAM> 替换为以下之一:

平台
Windows C:\Program Files (x86)\GnuPG\bin\gpg.exe
macOS/Linux /usr/local/bin/gpg

#导出你的公钥 (Exporting your public key)

以 ASCII 格式导出:

$ gpg --export --armor <ID>

**注意:**平台(如 GitHub)可能会要求你验证在 Git 和 GnuPG 中设置的电子邮件。

#Windows:添加到启动应用

#PowerShell 命令

当你完全重启时,GPG 代理可能不会自动启动。使用 PowerShell 将 GnuPG 的 IPC 工具添加到启动应用:

$ $shell = New-Object -ComObject WScript.Shell
$ $shortcut = $shell.CreateShortcut("C:\Users\$($Env:UserName)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\gpg-connect-agent.lnk")
$ $shortcut.TargetPath = "C:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe"
$ $shortcut.Arguments = "/bye"
$ $shortcut.Save()

手动启动:

$ gpgconf --launch gpg-agent

检查它是否成功添加此处