Cheat Sheet速查表
跳转到主要内容

GnuPG 速查表

本文根据 Devhints / GnuPG 翻译。代码示例及版本范围沿用原文。原文标注更新日期:2017-10-22。

GnuPG 是 OpenPGP 标准的一个完整且免费的实现。

基础

导出密钥

gpg -o key.gpg --export <KEY ID>

导出 ASCII 密钥:

gpg -o key.asc --armor --export <KEY ID>

注意: 如果省略 -o|--output 选项,密钥将直接输出到 stdout.

导入密钥

gpg --import key.gpg
gpg --import key.asc

仅合并密钥环中已有密钥的更新:

gpg --import key.asc --import-options merge-only

管理密钥环

生成新密钥:

gpg --gen-key
# or, generate a new key with dialogs for all options
gpg --full-gen-key

列出公钥:

gpg -k
gpg --list-keys

列出私钥:

gpg -K
gpg --list-secret-keys

使用密钥服务器

从密钥服务器导入密钥:

gpg --receive-keys <KEY IDS>

将密钥上传至密钥服务器:

gpg --send-keys <KEY IDS>

从密钥服务器获取密钥环中已有密钥的更新:

gpg --refresh-keys

从密钥服务器搜索密钥:

gpg --search-keys "<SEARCH STRING>"

覆盖密钥服务器设置 ~/.gnupg/gpg.conf

gpg --keyserver <URL> ...

信任密钥

gpg --edit-key <KEY ID>
# In the interactive prompt:
gpg> trust
gpg> save

NOTE: 在执行以下操作时,可以使用所有者的电子邮件或姓名(或其部分)来代替 ID 密钥: --edit-key

加密

公钥加密

这将生成一个加密文件, secret.txt.gpg,该文件只能由接收者解密:

gpg -e -o secret.txt.gpg -r <RECIPIENT> secret.txt

For <RECIPIENT> 您可以使用对方的密钥ID、其电子邮件地址或其姓名(或姓名的一部分)。

gpg -e -r <KEY ID> ...
gpg -e -r "Bez" ...
gpg -e -r "bezalelhermoso@gmail.com" ...

指定多个收件人

gpg -e -r <RECIPIENT> -r <ANOTHER RECIPIENT> ... secret.txt

NOTE:省略 -o|--output 将生成一个名为……的加密文件 <ORIGINAL FILENAME>.gpg 。

对称加密

使用共享密钥加密文件。系统会提示您输入密码短语。

gpg --symmetric secret.txt
# or
gpg -c secret.txt

解密

解密文件

gpg -d -o secret.txt secret.txt.gpg

如果文件是通过对称加密方式加密的,系统会提示您输入密码短语。

NOTE:省略 -o|--output 将把解密后的内容输出到 stdout

签名与验证

签名

gpg -o signed-file.txt.gpg -s file.txt

在加密过程中,也可以同时对加密文件进行签名:

gpg -s -o secret.txt.gpg \
  -r <RECIPIENT> secret.txt

验证签名

gpg --verify file.txt.gpg

查看已签名文件的内容

gpg -d signed-file.txt.gpg

其他

组件

列出所有组件:

gpgconf --list-components

终止某个组件:

gpgconf --kill <COMPONENT> # i.e. gpgconf --kill dirmngr

终止所有组件:

gpgconf --kill all

解析密钥环数据

使用 --with-colons 生成易于解析的输出 i.e。使用 awk, grep。各字段以冒号分隔。

gpg -k --with-colons

字段快速参考:

字段编号说明
1记录类型
2有效性
3密钥长度(位)
4公钥算法
5密钥 ID
6创建日期
7到期日期
8证书序列号、UID 哈希值、信任签名信息
9所有者信任度
10用户 ID
11签名类别
12关键功能
13发行方指纹
14标志字段
15令牌序列号
16哈希算法
17曲线名称
18合规标志
19最后更新时间戳
20来源

参见 GnuPG 详情 以了解更多详情。