# 生成 gpg 密钥
gpg --gen-key
# 生成吊销证书
gpg --gen-revoke 695C8981B2442634
# 列出所有 gpg 公钥
gpg --list-keys
# 列出所有 gpg 私钥
gpg --list-secret-keys
# 删除 gpg 公钥
gpg --delete-keys 695C8981B2442634
# 删除 gpg 私钥
gpg --delete-secret-keys 695C8981B2442634
# 输出 gpg 公钥 ascii
gpg --armor --output public.key --export 695C8981B2442634
# 输出 gpg 私钥 ascii
gpg --armor --output private.key --export-secret-keys 695C8981B2442634
# 上传 gpg 公钥
gpg --send-keys 695C8981B2442634 --keyserver
# 查看 gpg 公钥指纹
gpg --fingerprint 695C8981B2442634
# 导入 gpg 密钥(导入私钥时会自动导入公钥)
gpg --import private.key
# 加密文件
gpg --recipient 695C8981B2442634 --output encrypt.file --encrypt origin.file
# 解密文件
gpg --output origin.file --decrypt encrypt.file
# 文件签名,生成二进制的 gpg 文件
gpg --sign file.txt
# 文件签名,生成文本末尾追加 ASCII 签名的 asc 文件
gpg --clearsign file.txt
# 文件签名,生成二进制的 sig 文件
gpg --detach-sign file.txt
# 文件签名,生成 ASCII 格式的 asc 文件
gpg --detach-sign file.txt
# 签名并加密
gpg --local-user 695C8981B2442634 --recipient 695C8981B2442634 --armor --sign --encrypt file.txt
# 验证签名
gpg --verify file.txt.asc file.txt
# 延期
# gpg 也是使用主密钥和子密钥结合加密的
# pub 和 sub 分别是主公钥和子公钥
# sec 和 ssb 分别是主私钥和子私钥
# 如果有多个子密钥,会显示更多的 sub 和 ssb
# 一个主密钥可以绑定多个子密钥,平时加密解密使用的都是子密钥
gpg --edit-key admin@lanseyujie.com
sec rsa4096/9D22BF79E2549604
创建于:2019-02-11 有效至:2020-02-11 可用于:SC
信任度:未知 有效性:未知
ssb rsa4096/A1FB112628F3B06C
创建于:2019-02-11 有效至:2020-02-11 可用于:E
[ 未知 ] (1). Wildlife
# 指定子密钥,不指定则为主密钥
gpg> key 1
sec rsa4096/9D22BF79E2549604
创建于:2019-02-11 有效至:2020-02-11 可用于:SC
信任度:未知 有效性:未知
ssb* rsa4096/A1FB112628F3B06C
创建于:2019-02-11 有效至:2020-02-11 可用于:E
[ 未知 ] (1). Wildlife
# 更新过期时间
gpg> expire
将要变更子密钥的过期时间。
请设定这个密钥的有效期限。
0 = 密钥永不过期
= 密钥在 n 天后过期
w = 密钥在 n 周后过期
m = 密钥在 n 月后过期
y = 密钥在 n 年后过期
密钥的有效期限是?(0) 2y
密钥于 2022年01月25日 星期二 15时36分45秒 CST 过期
这些内容正确吗? (y/N) y
sec rsa4096/9D22BF79E2549604
创建于:2019-02-11 有效至:2020-02-11 可用于:SC
信任度:未知 有效性:未知
ssb* rsa4096/A1FB112628F3B06C
创建于:2019-02-11 有效至:2022-01-25 可用于:E
[ 未知 ] (1). Wildlife
gpg> save