Linux实用工具之GPG

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实用工具之GPG相关的知识,希望对你有一定的参考价值。

前言:


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



本文出自 “linux运维” 博客,请务必保留此出处http://arm2012.blog.51cto.com/2418467/1972546

以上是关于Linux实用工具之GPG的主要内容,如果未能解决你的问题,请参考以下文章

Git之签署工具GPG的安装和使用

安全与加密之gpg,ssh服务

gpg 工具日常使用

历史上的今天:GPG 作者诞生;激光器之父出生;Windows Phone 停运

监控工具之---Prometheus数据可视化Grafana

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?