1
0

安全:GnuPG 简明指南

This commit is contained in:
周中平 2023-07-03 16:09:19 +08:00
parent ee2f29f79c
commit 24e1d0530e
No known key found for this signature in database
GPG Key ID: B1DF9DD42D8E00DC
2 changed files with 32 additions and 74 deletions

View File

@ -438,7 +438,7 @@ const config = {
}, },
umami: { umami: {
websiteid: "7efcd733-c232-43db-9f17-10a00c53b152", websiteid: "7efcd733-c232-43db-9f17-10a00c53b152",
src: "https://umami.7wate.org/umami.js", src: "https://umami.7wate.org/script.js",
}, },
footer: { footer: {
style: "dark", style: "dark",

View File

@ -13,25 +13,24 @@ date: 2023-06-28
## 简介 ## 简介
GnuPGGNU Privacy GuardGPG是一款非对称加密的开源软件它是PGP加密软件的满足GPL协议的实现。GnuPG依照由IETF制定的en:OpenPGP技术标准设计。GnuPG是用于**加密、数字签章**及产生非对称匙对的软件。GPG 兼容 PGPPretty Good Privacy的功能 [GnuPG](https://gnupg.org/)GNU Privacy GuardGPG是一款开源软件用于非对称加密。它是满足 GPL 协议的 PGPPretty Good Privacy加密软件实现。GnuPG 依照由 IETF 制定的 OpenPGP 技术标准设计用于加密、数字签章及产生非对称密钥对。GPG 与 PGP 功能兼容
如果你想发送加密信息,首先你要得到接收者的公钥,然后通过该公钥加密传输,接收者使用私钥就可解密并读取文件,同时也可以在公共网络用数字签章表明身份和安全性。 如果你想发送加密信息,首先你要得到接收者的公钥,然后通过该公钥对信息进行加密传输,接收者使用私钥就可解密并读取文件。同时,你也可以在公共网络用数字签章表明身份和安全性。
## GPG ## GPG
### 安装 ### 安装
linux 默认安装 GPGwindows 和 mac 安装方法大同小异 在 Linux 系统中GnuPG 通常已经被默认安装。在 Windows 和 macOS 系统中,你可以从 [GnuPG 官方网站](https://gnupg.org/)下载安装
### 配置 ### 配置
```shell ```shell
# GPG 配置文件介绍 ~/.gnupg - GPG 配置目录
~/.gnupg - 配置目录 ~/.gnupg/gpg.conf GPG 配置文件
~/.gnupg/gpg.conf 配置文件 ~/.gnupg/trustdb.gpg GPG 信任库,用于存储你信任的其他 GPG 密钥
~/.gnupg/trustdb.gpg 信任库 ~/.gnupg/pubring.gpg GPG 公钥库,用于存储你的公钥和他人的公钥
~/.gnupg/pubring.gpg 公钥库 ~/.gnupg/secring.gpg GPG 私钥库,用于存储你的私钥
~/.gnupg/secring.gpg 私钥库
``` ```
### 生成密钥 ### 生成密钥
@ -81,123 +80,82 @@ from the Real Name, Comment and Email Address in this form:
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。 鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
``` ```
根据提示结合需求填写,生成 GPG 密钥。
## 常用命令 ## 常用命令
### 查看 ### 查看密钥
公钥
```shell ```shell
# 查看公钥
gpg --list-keys gpg --list-keys
gpg -k gpg -k
```
私钥 # 查看私钥
```shell
gpg --list-secret-keys gpg --list-secret-keys
gpg -K gpg -K
``` ```
### 导出 ### 导出密钥
公钥
```shell ```shell
# 导出公钥
gpg --armor --output public-key.txt --export [用户ID] gpg --armor --output public-key.txt --export [用户ID]
```
私钥 # 导出私钥
```shell
gpg --armor --output private-key.txt --export-secret-keys [用户ID] gpg --armor --output private-key.txt --export-secret-keys [用户ID]
``` ```
--armor 生成 asc 后缀的 ASCII 类型的文本文件,否则生成 gpg 后缀的二进制文件 在这里,`--armor`选项会生成.asc后缀的ASCII类型的文本文件如果不使用该选项则会生成.gpg后缀的二进制文件。
### 导入 ### 导入密钥
本地公钥文件
```shell ```shell
# 从本地文件导入密钥
gpg --import [密钥文件] gpg --import [密钥文件]
```
服务器公钥文件 # 从服务器导入密钥
```shell
gpg --keyserver [服务器] --search-keys [用户ID] gpg --keyserver [服务器] --search-keys [用户ID]
``` ```
### 公布 ### 公布密钥
发布至公开服务器
```shell ```shell
# 将密钥发布到公开服务器
gpg --send-keys [用户ID] --keyserver [服务器] gpg --send-keys [用户ID] --keyserver [服务器]
```
发布用户指纹 # 发布用户指纹
```shell
gpg --fingerprint [用户ID] gpg --fingerprint [用户ID]
``` ```
### 删除 ### 删除
删除指定公钥
```shell ```shell
# 删除指定公钥
gpg --delete-key [用户id] gpg --delete-key [用户id]
```
删除指定密钥 # 删除指定私钥
```shell
gpg --delete-secret-keys [用户id] gpg --delete-secret-keys [用户id]
``` ```
吊销指定密钥 ## 加密和解密
## 加密/解密
加密文件
```shell ```shell
# 加密文件
gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt
```
解密文件 # 解密文件
```shell
gpg --decrypt demo.en.txt --output demo.de.txt gpg --decrypt demo.en.txt --output demo.de.txt
gpg demo.en.txt gpg demo.en.txt
```
签名文件GPG 格式) # 签名文件GPG格式
```shell
gpg --sign test.txt gpg --sign test.txt
```
签名文件ASCII 格式) # 签名文件ASCII格式
```shell
gpg --clearsign test.txt gpg --clearsign test.txt
```
生成单独签名 # 生成单独签名
# -a 选项会生成 ASCII 格式的签名
```shell
gpg -a --detach-sign test.txt gpg -a --detach-sign test.txt
```
-a 生成 ASCII 格式 # 验证签名
验证签名
```shell
gpg --verify test.txt.asc test.txt gpg --verify test.txt.asc test.txt
``` ```