GPG 使用
GPG(GnuPG)是一种加密工具,用于数据加密和数字签名。
- 加密:确保发出的消息,只能被预期的接收者获取
- 签名:确保收到的消息,确实由预期的发送者发出
文件操作
gpg -s file # 签名。生成包含明文和签名的 .gpg 二进制文件
gpg --clear-sign file # 签名。生成包含人类可读明文和签名的 .asc 文本文件
gpg -er <key-id> file # 加密。生成包含密文的 .gpg 二进制文件
gpg -ser <key-id> file # 签名并加密
gpg -b file # 分离签名。生成包含签名的 .sig 二进制文件
gpg --verify file.gpg # 验签
gpg -d file.gpg > file # 解密并验签
gpg file.gpg # 等价于 gpg -d file.gpg > file
-s:sign-u:local user,发信人(可选)-e:encrypt-r:recipient,收信人-b:detach sign-d:decrypt-a:armor,输出 .asc 文本文件
<key-id> 可以是名字、邮箱,也可以是指纹。
密钥操作
gpg --gen-key # 生成密钥对
gpg --gen-revoke # 生成撤销证书
gpg -k # 列出公钥
gpg -K # 列出私钥
gpg --fingerprint <key-id> # 列出密钥指纹
gpg --export <key-id> > public.gpg # 导出公钥
gpg --export-secret-keys <key-id> > private.gpg # 导出私钥
gpg --import <file> # 导入密钥
gpg --sign-key <key-id> # 对他人的公钥签名
gpg --send-keys <key-id> # 上传公钥
gpg --recv-keys <key-id> # 下载公钥
gpg --search-keys <key-id> # 搜索公钥
gpg --delete-keys <key-id> # 删除公钥
gpg --delete-secret-keys <key-id> # 删除私钥
gpg --edit-key <key-id> # 编辑密钥
gpg --passwd <key-id> # 更改密钥密码
可以在 ~/.gnupg/dirmngr.conf 文件中指定 keyserver
keyserver hkps://keyserver.ubuntu.com
修改 keyserver 后,需要重启 dirmngr:
gpgconf --kill dirmngr
输出解读
列出所有公钥
$ gpg -k
[keyboxd]
---------
pub ed25519 2023-12-28 [SC]
564B356FA6CEDE922C87DDA6ADA20EA03D7C43B
uid [ultimate] User Name (Default GPG Key) <email@example.com>
sub cv25519 2023-12-28 [E]
pub: 表示一个公钥(pubkey)的记录开始ed25519: 密钥使用的加密算法2023-12-28: 密钥的生成日期[SC]: 该密钥具有签名(Signing)和认证(Certification)的功能564B356FA6CEDE922C87DDA6ADA20EA03D7C43B: 密钥指纹uid: 用户身份(User ID)。包括名称和电子邮件地址[ultimate]: 表示信任级别为 “绝对”(ultimate)sub: 表示子密钥(subkey)cv25519: 子密钥使用的加密算法[E]: 该密钥具有加密(Encryption)的功能
列出所有私钥
$ gpg --list-secret-keys
[keyboxd]
---------
sec ed25519 2023-12-28 [SC]
564B356FA6CEDE922C87DDA6ADA20EA03D7C43B
uid [ultimate] User Name (Default GPG Key) <email@example.com>
ssb cv25519 2023-12-28 [E]
sec:表示一个私钥(secret key)的记录开始ssb:私钥的子密钥(secret subkey)
参考:

浙公网安备 33010602011771号