##什么是GPG
1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。
这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。
但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,
开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。GPG有许多用途,本文主要介绍文件加密。
至于邮件的加密,不同的邮件客户端有不同的设置,请参考Ubuntu网站的介绍。
本文的使用环境为Linux命令行。如果掌握了命令行,Windows 或
Mac OS 客户端,就非常容易掌握。GPG并不难学,学会了它,
从此就能轻松传递加密信息。建议读者一步步跟着教程做,
对每条命令都自行测试。
##GPG安装
1.源码安装(下载源码包)
./configure
make
make install
2.yum源安装
yum install gnupg
##GPG使用
查看帮助
gpg --help
生成非对称加密钥
gpg --gen-key
列出所有的公钥
gpg -k
列出所有的私钥
gpg -K
列出密钥
gpg --list-keys
显示结果:
pub 2048R/A70E5CB4 2016-04-22 [expires: 2016-04-29]
uid doyle (test user) <doyle@qq.com>
sub 2048R/9359FCC8 2016-04-22 [expires: 2016-04-29]
pub 2048R/93999488 2016-04-22 [expired: 2016-04-23]
uid doyle (123) <doyle@qq.com>
pub 2048R/C1EA0413 2016-04-23 [expires: 2016-04-25]
uid doyle (doyle) <doyle@qq.com>
sub 2048R/A23752C0 2016-04-23 [expires: 2016-04-25]
加密文件
gpg --recipient 标识名 --encrypt 文件名
列如:gpg --recipient doyle --encrypt aa.txt
解密文件
gpg --output 新文件名 --decrypt 加密文件名
列如:gpg --output ss --decrypt aa.gpg
密钥导入
gpg --import 密钥文件
例如:gpg --import gpgkey.pub.asc
公钥删除
gpg --delete-keys 标识名
例如:
gpg --delete-keys doyle
gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub 2048R/A70E5CB4 2016-04-22 doyle (test user) <doyle@qq.com>
Delete this key from the keyring? (y/N) y
私钥删除
gpg --delete-secret-keys 标识名
例如: gpg --delete-secret-keys 93999488
签名认证
gpg --sign-key id 用自己的私钥对B的公钥进行签名,以后就不用再确认
例如:gpg --sign-key doyle
查看签名的所有密钥和被签名的密钥
gpg --list-sigs
编辑对密钥的信任度
gpg --edit-key id
数字签名
gpg -o 原文件和签名 -s 原文件
分离式签名
gpg -o 目标文件 -ab 源文件
验证签名
gpg --verify doc.sig [doc]
验证之前必须导入文件作者的公钥,对于分离式签名,最后还要加上原文件,即后面的doc。
例一:压缩加密
zip -e 目标文件名字 文件名字
unzip 文件名字 --------->输入正确密码解压
列二: 对文件进行加密
gpg -c abc.txt 对文件加密
gpg -d abc.txt.gpg 对文件解密
列三: 通过文件进行加密
gpg -o abc.txt -d abc.txt.gpg 对文件解密到abc.txt (-o选项的位置是固定的)
***gpgcheck =1 会在yum安装的时候进行签名验证
如果yum.repo中gpgcheck=1 ,下面还要加一行是gppgkey 的位置
gpgkey的位置在:vim /iso/RPM-GPG-KEY-redhat-release
rpm --import /iso/RPM-GPG-KEY-redhat-release 将红帽系统的公钥导入到rpm数据库中***
转载于:https://blog.51cto.com/conandoyle/1767045