PGP密钥

image

1. PGP 密钥

PGP(Pretty Good Privacy)是一种用于数据加密和解密的系统,提供数据通信的加密隐私和认证。

[!info] 阅读导览
第 1 章 安装 GPG(Linux/macOS/Windows) → 第 2 章 验证安装 → 第 3 章 生成密钥对(交互式七步) → 第 4 章 验证密钥 → 第 5 章 导出和备份 → 第 6 章 使用 PGP 加密解密 → 第 7 章 图表与注释

2. 安装 GPG

首先,需要安装 GPG 工具。根据操作系统的不同,安装方法有所不同:

2.1.1. Debian/Ubuntu

sudo apt-get install gnupg

2.1.2. macOS(使用 Homebrew)

brew install gnupg

2.1.3. Windows

方式一:从 GnuPG 官网下载安装包

从 GnuPG 官网 下载安装包(Windows 下推荐 Gpg4win),运行安装程序即可。

方式二:使用 Winget 安装 GPG

安装 Winget 后,可以使用以下命令安装 GPG:

  • 安装 Gpg4win:Gpg4win 是 Windows 上 GPG 的一个完整实现,包含了 GPG 和其他相关工具:
winget install Gpg4win
  • 安装 GNU Privacy Guard:如果你只需要安装 GPG,可以使用以下命令:
winget install --id=GnuPG.GnuPG -e

环境变量

看起来你已经安装了 Gpg4win,但 gpg 命令没有被识别。这可能是因为路径没有正确配置。可以尝试以下步骤解决问题:

  • 验证安装路径:确认 Gpg4win 已经安装。通常在 C:\Program Files (x86)\GnuPG\bin 或类似目录下。
  • 更新环境变量:将 Gpg4win 的 bin 目录添加到系统的 PATH 环境变量中:
    1. 打开 控制面板 > 系统和安全 > 系统 > 高级系统设置;
    2. 点击 环境变量;
    3. 在 系统变量 中找到 Path,点击 编辑;
    4. 添加 Gpg4win bin 目录的路径(例如,C:\Program Files (x86)\GnuPG\bin)。
  • 重启 PowerShell:关闭并重新打开 PowerShell 以应用 PATH 变量的更改。
  • 检查安装:在新的 PowerShell 窗口中再次运行 gpg --version。

如果问题仍然存在,确保 PATH 中没有输入错误,并确认安装过程顺利完成。

3. 验证安装

安装完成后,可以通过以下命令验证 GPG 是否安装成功:

检查 GPG 版本:打开 PowerShell 或命令提示符,输入以下命令查看 GPG 版本信息:

gpg --version

4. 生成密钥对

打开终端或命令行,运行以下命令启动交互式密钥生成过程:

gpg --full-gen-key

4.1.1. 选择密钥类型

GPG 会提示你选择密钥类型。通常选择默认的 RSA 和 RSA(用于签名和加密):

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1

输入 1 并按回车键。

4.1.2. 设置密钥长度

选择密钥长度,建议选择 2048 或 4096 位:

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096

输入 4096 并按回车键。

4.1.3. 设置密钥有效期

选择密钥的有效期,可以设置为 N 年、N 月或 N 天,或者选择不设置有效期(0 表示永不过期):

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 1y

输入 1y 表示密钥有效期为 1 年,或者输入 0 表示永不过期。

4.1.4. 确认选项

确认你输入的选项是否正确:

Is this correct? (y/N) y

输入 y 并按回车键。

4.1.5. 输入用户信息

输入你的姓名和电子邮件地址,用于生成密钥:

Real name: Your Name
Email address: [email protected]
Comment: [可选]

按回车键确认。

4.1.6. 设置密码

最后,设置一个密码来保护你的私钥。输入密码并确认:

Enter passphrase: 
Repeat passphrase: 

完成后,GPG 会生成一个新的 PGP 密钥对。

[!note] 备注
上一次曾在这一步失败;如果交互式终端操作不便,可以了解带有 GUI 的密钥管理工具(如 Gpg4win 自带的 Kleopatra)来辅助完成。

5. 验证密钥

你可以使用以下命令查看生成的公钥和私钥:

gpg --list-keys
gpg --list-secret-keys

这将列出你生成的所有密钥对。

6. 导出和备份密钥

为了确保密钥的安全性和可用性,建议导出并备份你的公钥和私钥。

  • 导出公钥:
gpg --export -a "Your Name" > public.key
  • 导出私钥:
gpg --export-secret-keys -a "Your Name" > private.key

7. 使用 PGP 加密和解密

  • 加密文件:
gpg --encrypt --recipient "Recipient Name" filename
  • 解密文件:
gpg --decrypt filename.gpg

8. 图表和注释

8.1.1. PGP 密钥生成流程图

graph TD;
    A[安装GPG] --> B[生成密钥对];
    B --> C[选择密钥类型];
    C --> D[设置密钥长度];
    D --> E[设置密钥有效期];
    E --> F[确认选项];
    F --> G[输入用户信息];
    G --> H[设置密码];
    H --> I[生成密钥对完成];
    I --> J[验证密钥];
    J --> K[导出和备份密钥];
    K --> L[使用PGP加密和解密];

8.1.2. 注释

  • 安装 GPG:确保你的系统上安装了 GPG 工具,这是生成 PGP 密钥的前提。
  • 生成密钥对:通过命令 gpg --full-gen-key 启动密钥生成过程。
  • 选择密钥类型:通常选择 RSA 和 RSA(用于签名和加密)。
  • 设置密钥长度:建议选择 2048 或 4096 位,以确保安全性。
  • 设置密钥有效期:可以根据需要设置密钥的有效期,0 表示永不过期。
  • 确认选项:确认所有设置是否正确。
  • 输入用户信息:输入你的姓名和电子邮件地址,用于生成密钥。
  • 设置密码:设置一个密码来保护你的私钥。
  • 生成密钥对完成:GPG 会生成一个新的 PGP 密钥对。
  • 验证密钥:使用命令 gpg --list-keys 和 gpg --list-secret-keys 查看生成的密钥。
  • 导出和备份密钥:导出公钥和私钥,并妥善保管。
  • 使用 PGP 加密和解密:使用生成的密钥对文件进行加密和解密操作。

8.1.3. 总结

通过上述步骤和图表,你可以成功生成并使用 PGP 密钥对,用于加密和解密数据。确保妥善保管你的私钥,并定期备份以防丢失。PGP 提供了强大的数据保护功能,是确保数据通信安全的有效工具。

[!success] 核心要点

  • 安装:sudo apt-get install gnupg(Debian/Ubuntu)、brew install gnupg(macOS)、Winget 或官网安装包(Windows)
  • 生成:gpg --full-gen-key → 选 RSA/RSA → 4096 位 → 有效期 → 用户信息 → 设置密码
  • 备份:公钥 gpg --export -a、私钥 gpg --export-secret-keys -a,私钥务必妥善保管
  • 使用:加密 gpg --encrypt --recipient,解密 gpg --decrypt
  • 注意事项:Windows 下 gpg 无法识别时检查 PATH;交互式操作不便可改用 Kleopatra 等 GUI 工具