1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP(Pretty Good Privacy)。成为程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。 GPG 是 GNU Privacy Guard的简写,是GNU对PGP技术的实现。
1.git下编译安装。
[root@node2 soft]# git clone https://github.com/gpg/gnupg.git
[root@node2 soft]# cd gnupg/
#没有configuate文件不知道怎么安装
[root@node2 gnupg]# ls
ABOUT-NLS artwork build-aux configure.ac COPYING.LGPL21 doc kbx po scd TODO
acinclude.m4 AUTHORS ChangeLog COPYING COPYING.LGPL3 g10 m4 README sm tools
agent autogen.rc ChangeLog-2011 COPYING.CC0 COPYING.other g13 Makefile.am README.GIT tests
am autogen.sh common COPYING.GPL2 dirmngr INSTALL NEWS README.maint THANKS
2.yum安装
[root@master ~]# yum install gnupg
3.命令
3.1 gpg帮助
gpg --help
3.2 生成公钥
gpg --gen-key
3.3 撤销公钥
gpg --gen-revoke [用户ID]
3.4 删除公钥
gpg --delete-key [用户ID]
3.4 列出密钥
gpg --list-keys
3.5 输出密钥
gpg --armor --output public-key.txt --export [用户ID]
3.6 转换私钥。
gpg --armor --output private-key.txt --export-secret-keys
export-secret-keys参数可以转换私钥。
3.7 上传公钥
公钥服务器是网络上专门储存用户公钥的服务器。send-keys参数可以将公钥上传到服务器。使用上面的命令,你的公钥就被传到了服务器subkeys.pgp.net,然后通过交换机制,所有的公钥服务器最终都会包含你的公钥。
gpg --send-keys [用户ID] --keyserver hkp://subkeys.pgp.net
3.8 生成公钥指纹
由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在网站上公布一个公钥指纹,让其他人核对下载到的公钥是否为真。fingerprint参数生成公钥指纹。
gpg --fingerprint [用户ID]
3.9 输入密钥
gpg --import [密钥文件]
3.10 查找密钥
为了获得他人的公钥,可以让对方直接发给你,或者到公钥服务器上寻找。
gpg --keyserver hkp://subkeys.pgp.net --search-keys [用户ID]
3.11 加密
gpg --recipient [用户ID] --output demo.en.txt --encrypt demo.txt
encrypt参数用于加密。recipient参数指定接收者的公钥,output参数指定加密后的文件名,encrypt参数指定源文件。
3.12 解密
gpg --decrypt demo.en.txt --output demo.de.txt
decrypt参数指定需要解密的文件,output参数指定解密后生成的文件。
GPG允许省略decrypt参数,解密后的文件内容直接显示在标准输出。
gpg demo.en.txt
3.13 对文件签名
gpg --sign demo.txt
生成ASCII码的签名文件
3.14 生成ASCII码的签名文件
gpg --clearsign demo.txt
生成ASCII码的签名文件使用clearsign参数,
当前目录下生成demo.txt.asc文件,后缀名asc表示该文件是ASCII码形式的。
3.15 生成单独的签名文件
gpg --detach-sign demo.txt
gpg --armor --detach-sign demo.txt
当前目录下生成一个单独的签名文件demo.txt.sig。该文件是二进制形式的,如果想采用ASCII码形式,要加上armor参数。
3.16 签名+加密
gpg --local-user [发信者ID] --recipient [接收者ID] --armor --sign --encrypt demo.txt
local-user参数指定用发信者的私钥签名,recipient参数指定用接收者的公钥加密,armor参数表示采用ASCII码形式显示,sign参数表示需要签名,encrypt参数表示指定源文件。
3.17 验证签名
gpg --verify demo.txt.asc demo.txt
收到签名后的文件,需要用对方的公钥验证签名是否为真,verify参数用来验证。
————Blueicex 2020/2/22 13:11 blueice1980@126.com
来源:CSDN
作者:blueicex2020
链接:https://blog.csdn.net/blueicex2017/article/details/104439240