Yulong Niu

个人博客

gpg使用简要

Posted at — Jan 23, 2020

本文尝试摘要gpg的常用功能。

0. 基本概念

1. 安装

brew install gnupg

2. 基本操作

2.1 生成

## 生成主密钥
gpg --full-gen-key
## 根据提示设置:
## key size选择4096
## 生成子密钥
gpg --edit-key MyID
## 进入交互页面,输入:
## addKey
## 之后,根据提示设置
## save

2.2 查看

## 查看公钥
gpg --list-keys
gpg -k

## `--fingerprint`指纹
## `--keyid-format`长ID
## 0x后为长ID
gpg --list-key --fingerprint --keyid-format long

## 查看私钥
gpg --list-secret-keys
gpg -K

2.3 撤销

gpg --generate-revocation -ao myRevokeFile MyID

2.4 备份

## 备份公钥
## -a: armor
gpg -ao MyPublickKeyFile --export MyID

## 备份主密钥
## MyLongID后加!
gpg -ao MySecretKeyFile --export-secret-key MyLongID!

## 备份签名子密钥
gpg -ao MySignSubkeyFile --export-secret-subkeys MyLongID!

## 备份加密子密钥
gpg -ao MyEncryptSubkeyFile --export-secret-subkeys MyLongID!

2.5 导入

## 导入密钥或公钥
gpg --import MyKeyFile

导入后出现There is no assurance this key belongs to the named user警告,需要手动信任。

gpg --edit-key MyKeyID
## 进入交互页面,输入:
## trust
## 选择信任强度
## quit

3. 加密解密

## 签名和加密
## -s: signature
## -e: encrypt
gpg -se -o MyEncryptFile -r MyID MyFile

## 只加密
## --armor
gpg --armor --recipient MyID --output MyEncryptFile --encrypt MyFile

## 解密
## -d: decrypt
gpg -o MyFile -d MyEncryptFile

4. GitHub添加gpg认证

## 添加`MyID`
git config --global gpg.program "$(which gpg)"
git config --global user.signingkey MyID
git config --global commit.gpgsign true

## 在GitHub设定SSH and GPG keys,添加公钥

最后在https://github.com/MyGithubID.gpg查看公钥。这是,我的公钥

参考资料

  1. 2021年,用更现代的方法使用PGP(上)

  2. 震惊!竟然有人在 GitHub 上冒充我的身份!

更新记录

2022年05月02日