ubuntu 使用gpg2详解

2020-01-03 10:10:52 浏览数 (1)

安装

代码语言:javascript复制
apt-get install gnupg2

生成密钥对

代码语言:javascript复制
gpg2 --full-generate-key
# 然后,按提示填写即可
gpg2 --list-keys
# 输出
pub   rsa2048 2020-01-02 [SC]
      6CFAA44AC11E041B0181988352FC3xxxxC39FF406
uid           [ 绝对 ] haha <haha@126.com>
sub   rsa2048 2020-01-02 [E]

注意,这个haha@126.com就是用户ID 6CFAA44AC11E041B0181988352FC3xxxxC39FF406 是用户标识

导出公钥

代码语言:javascript复制
gpg2 --armor --output ~/public-key.txt --export haha@126.com

此时在~目录下,会出现你的公钥

导出私钥

代码语言:javascript复制
gpg2 --armor --output ~/private-key.txt --export-secret-keys haha@126.com 

把公钥上传到服务器

代码语言:javascript复制
# 6CFAA44AC11E041B0181988352FC3xxxxC39FF406 是用户标识,在--list-keys可以查看到
gpg2  --keyserver hkp://keyserver.ubuntu.com --send-keys 6CFAA44AC11E041B0181988352FC3xxxxC39FF406

此时,你可以搜索到你的公钥

代码语言:javascript复制
gpg2  --keyserver hkp://keyserver.ubuntu.com --search-keys "haha@126.com"

这里截个图:

下载公钥

代码语言:javascript复制
# 首先搜索 haha@126.com,弄清id,然后
gpg2 --keyserver keyserver.ubuntu.com --recv 52FC3B13C39Fxxx6

此时:

代码语言:javascript复制
gpg2 --list-keys
/root/.gnupg/pubring.kbx
------------------------
pub   rsa2048 2020-01-02 [SC]
      6CFAA44AC11E041B01819883xxxxxxx9FF406
uid           [ unknown] xxxxx <xxxxxxxx@126.com>
sub   rsa2048 2020-01-02 [E]

可以发现公钥。

加密

代码语言:javascript复制
gpg2 --recipient xxxxx@126.com --output test2.txt --encrypt test.txt

导入了公钥后,就可以用公钥加密。test.txt为源文件,test2.txt为加密后的文件

解密

将加密后的文件发给拥有私钥的一方。

代码语言:javascript复制
gpg --recipient xxxx@126.com --output testde.txt --decrypt ./test2.txt

此时,会要求你输入创建密钥对时的保护密码,输入密码后,testde.txt文件生成。

0 人点赞