GPG使用方法

更新过期时间

更新过期的key

$ gpg -k  # list public key
$ gpg -K  # list private key
$ gpg --edit-key <optional-key-id>
yychi@~> gpg --edit-key 4064117B3192D56BACCCBB68B6210039643FFB28
gpg (GnuPG) 2.2.36; Copyright (C) 2022 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
私钥可用。
 
sec  rsa3072/B6210039643FFB28
     创建于:2019-04-16  有效至:2024-07-23  可用于:SC  
     信任度:绝对        有效性:绝对
ssb  rsa3072/87BFC8C3205F2DB6
     创建于:2019-04-16  有效至:2022-10-22  可用于:E   
[ 绝对 ] (1). Bingb Hu (yychi) <guyueshui002@gmail.com>
 
gpg> expire 
将要变更主密钥的过期时间。
请设定这个密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 3m
密钥于 2022年10月22日 星期六 22时07分21秒 CST 过期
这些内容正确吗? (y/N) y
 
sec  rsa3072/B6210039643FFB28
     创建于:2019-04-16  有效至:2022-10-22  可用于:SC  
     信任度:绝对        有效性:绝对
ssb  rsa3072/87BFC8C3205F2DB6
     创建于:2019-04-16  有效至:2022-10-22  可用于:E   
[ 绝对 ] (1). Bingb Hu (yychi) <guyueshui002@gmail.com>
 
gpg> key 1  # 选择子key,可以看到ssb*被选中了
 
sec  rsa3072/B6210039643FFB28
     创建于:2019-04-16  有效至:2022-10-22  可用于:SC  
     信任度:绝对        有效性:绝对
ssb* rsa3072/87BFC8C3205F2DB6
     创建于:2019-04-16  有效至:2022-10-22  可用于:E   
[ 绝对 ] (1). Bingb Hu (yychi) <guyueshui002@gmail.com>
 
gpg> expire
将要变更子密钥的过期时间。 # 注意这里是子密钥了
请设定这个密钥的有效期限。
         0 = 密钥永不过期
      <n>  = 密钥在 n 天后过期
      <n>w = 密钥在 n 周后过期
      <n>m = 密钥在 n 月后过期
      <n>y = 密钥在 n 年后过期
密钥的有效期限是?(0) 

加密/解密

$ gpg -r <key-id> -e somefile.txt  # 加密文件
$ echo "abc" | gpg -r <key-id> -e  # 加密文本
 
$ gpg -r <key-id> -d somefile.txt.gpg  # 使用指定key解密文件

Cf.

  1. https://gist.github.com/jhjguxin/6037564
  2. https://www.yangqi.show/posts/gpg-tutorial 这个讲的更好

改变密钥功能(capability)

参见:https://unix.stackexchange.com/a/654150

在edit-key模式中,选中需要编辑的key,键入change-usage改变密钥用途。

gpg> change-usage
变更主密钥的用途。

RSA 密钥的可实现的功能: 签名(Sign) 认证(Certify) 加密(Encrypt) 身份验证(Authenticate) 
目前启用的功能: 签名(Sign) 认证(Certify) 

   (S) 签名功能开关
   (E) 加密功能开关
   (A) 身份验证功能开关
   (Q) 已完成

您的选择是? s

References

  1. GPG masterkey and subkey for encryption and signature and default keys
  2. The GNU Privacy Handbook
  3. 加密软件 GPG 入门教程
  4. GPG 最佳实践