您的位置:首页 > 运维架构 > Linux

Linux实用工具之GPG

2017-10-15 21:19 204 查看
前言:
GPG是自由软件基金会开发用于替代商业加密软件PGP的替代品,取名为GnuPG。GPG有许多用途,本文主要介绍文件加密。红帽系列Linux中软件包为gnupg2

对称加密方式:
1、实用gpg完成文件加密
使用方法:gpg -c file
在弹出页面输入两遍口令即可加密文件,加密后会生成原文件名加.gpg的加密文件,注意此时未加密文件仍然存在,可删除原文件。



2、查出加密文件
使用方法:gpg -d 加密文件
在弹出如上图界面输入口令即可查看文件
3、把加密的文件解密出来
使用方法:gpg -o newfilename -d file.gpg

非对称加密方式:

一、秘钥生成
1.1 在hostA主机上生成公钥/私钥对
gpg --gen-key



选择加密算法界面,这里选择1默认加密和证书都使用RSA算法。
1.2 设定密码长度



输入秘钥长度,越长越安全。这里直接回车默认2048位。
1.3 设定密码有效期



如确定秘钥可以妥善管理可以选择“0”,永不过期。

1.4 输入姓名邮箱信息



1.5 在弹出框内输入加密私钥口令
1.6系统就开始生成密钥
这时需多做些琐事(像是敲打键盘、移动鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
1.7生成秘钥成功



字符串"EDDD6D76",这是"用户ID"的Hash字符串,可以用来替代"用户ID"。
二、秘钥管理
2.1 查看秘钥



2.2 删除秘钥及撤销证书
#删除列表中某公钥
gpg --delete-keys [用户ID] #用户名ID可以为hash码或邮箱、用户名
#删除列表中某私钥
gpg --delete-secret-keys [用户ID]
#撤销证书
gpg --gen-revoke [用户ID]
2.3 上传公钥到服务器
gpg --send-keys [用户ID] --keyserver hkp://subkeys.pgp.net
由于公钥服务器没有检查机制,任何人都可以用你的名义上传公钥,所以没有办法保证服务器上的公钥的可靠性。通常,你可以在网站上公布一个公钥指纹,让其他人核对下载到的公钥是否为真。fingerprint参数生成公钥指纹。
gpg --fingerprint [用户ID]


三、 实现公钥加密传输
3.1 在hostA主机上导出公钥到wang.pubkey

gpg -a --export -o wang.pubkey
从hostA主机上复制公钥文件到需加密的B主机上

scp wang.pubkey hostB:
3.2 在需加密数据的hostB主机上生成公钥/私钥对

gpg --list-keys
gpg --gen-key
在hostB主机上导入公钥

gpg --import wang.pubkey
gpg --list-keys
3.3 用从hostA主机导入的公钥,加密hostB主机的文件file,生成

file.gpg
gpg -e -r wangxiaochun file
file file.gpg
复制加密文件到hostA主机

scp fstab.gpg hostA:
3.4 在hostA主机解密文件

gpg -d file.gpg
gpg -o file -d file.gpg


四、签名&验证签名
4.1 对文件签名
不加密文件,只需要对文件签名,表示这个文件确实是本人发出的。sign参数用来签名。
 gpg --sign demo.txt
运行上面的命令后,当前目录下生成demo.txt.gpg文件,这就是签名后的文件。这个文件默认采用二进制储存,
4.2 如果想生成ASCII码的签名文件,可以使用clearsign参数。 
 gpg --clearsign demo.txt
运行上面的命令后 ,当前目录下生成demo.txt.asc文件,后缀名asc表示该文件是ASCII码形式的。
4.3 如果想生成单独的签名文件,与文件内容分开存放,可以使用detach-sign参数。
gpg --detach-sign demo.txt
运行上面的命令后,当前目录下生成一个单独的签名文件demo.txt.sig。该文件是二进制形式的,如果想采用ASCII码形式,要加上armor参数。
gpg --armor --detach-sign demo.txt
4.4 验证签名
收到别人签名后的文件,需要用对方的公钥验证签名是否为真。verify参数用来验证。
 gpg --verify demo.txt.asc demo.txt
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对称加密 gnupg gpg