linux 自动化gpg,Linux实用工具之GPG

前言:

GPG是自由软件基金会开发用于替代商业加密软件PGP的替代品,取名为GnuPG。GPG有许多用途,本文主要介绍文件加密。红帽系列Linux中软件包为gnupg2

对称加密方式:

1、实用gpg完成文件加密

使用方法:gpg -c file

在弹出页面输入两遍口令即可加密文件,加密后会生成原文件名加.gpg的加密文件,注意此时未加密文件仍然存在,可删除原文件。

42bf774ab028a1bd5d2fa7655c3e4d6b.png

2、查出加密文件

使用方法:gpg -d 加密文件

在弹出如上图界面输入口令即可查看文件

3、把加密的文件解密出来

使用方法:gpg -o newfilename -d file.gpg

非对称加密方式:

一、秘钥生成

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

f103734604490d13046926d01f80c400.png

选择加密算法界面,这里选择1默认加密和证书都使用RSA算法。

1.2 设定密码长度

ad3b22d58bb646eeafb61c8fdfd1d675.png

输入秘钥长度,越长越安全。这里直接回车默认2048位。

1.3 设定密码有效期

9a26a06d3438e67891cb55ee3aa86d55.png

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

1.4 输入姓名邮箱信息

08dc42c870bb35719fb50c434eb42a19.png

1.5 在弹出框内输入加密私钥口令

1.6系统就开始生成密钥

这时需多做些琐事(像是敲打键盘、移动鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。

1.7生成秘钥成功

0d1be2145b5d8be290a80a3e3d4ce4f0.png

字符串"EDDD6D76",这是"用户ID"的Hash字符串,可以用来替代"用户ID"。

二、秘钥管理

2.1 查看秘钥

2ca5002906df3bc350a1889027461022.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值