实验环境:
两台centos主机。
一台充当hostA,另一台充当hostB。
在hostB主机上用公钥加密,在hostA主机上解密
1、在hostA主机上生成公钥/私钥对
gpg --gen-key

[root@centos7 ~]# gpg --gen-key
gpg (GnuPG) 2.0.22; Copyright (C) 2013 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.gpg: 已创建目录‘/root/.gnupg’
gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用
gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立
gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立
请选择您要使用的密钥种类:(1) RSA and RSA (default)(2) DSA and Elgamal(3) DSA (仅用于签名)(4) RSA (仅用于签名)
您的选择? 1
RSA 密钥长度应在 1024 位与 4096 位之间。
您想要用多大的密钥尺寸?(2048)
您所要求的密钥尺寸是 2048 位
请设定这把密钥的有效期限。0 = 密钥永不过期<n>  = 密钥在 n 天后过期<n>w = 密钥在 n 周后过期<n>m = 密钥在 n 月后过期<n>y = 密钥在 n 年后过期
密钥的有效期限是?(0)
密钥永远不会过期
以上正确吗?(y/n)yYou need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"真实姓名:cwj
姓名至少要有五个字符长
真实姓名:chenwj
电子邮件地址:
注释:test key
您选定了这个用户标识:“chenwj (test key)”更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O
您需要一个密码来保护您的私钥。您不想要有密码――这个想法实在是遭透了!
不过,我仍然会照您想的去做。您任何时候都可以变更您的密码,仅需要
再次执行这个程序,并且使用“--edit-key”选项即可。我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动
鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。
gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 F91BA00F 被标记为绝对信任
公钥和私钥已经生成并经签名。gpg: 正在检查信任度数据库
gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性:  1 已签名:  0 信任度:0-,0q,0n,0m,0f,1u
pub   2048R/F91BA00F 2019-10-15
密钥指纹 = 9830 7030 60DE B2D6 F45E  FAE3 8009 DB35 F91B A00F
uid                  chenwj (testkey)
sub   2048R/D3D8AAC1 2019-10-15

提示要输入密码,也可以忽略。直接点击OK。

点击"Take this one anyway",点击多次

点击"Yes,protection is not needed"

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

在hostA主机上查看公钥。

[root@centos7 .gnupg]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/F91BA00F 2019-10-15
uid                  chenwj (testkey)
sub   2048R/D3D8AAC1 2019-10-15

2、在hostA主机上导出公钥到wang.pubkey

[root@centos7 ~]# gpg -a --export -o cwj.pubkey
[root@centos7 ~]# ls
cwj.pubkey
[root@centos7 ~]# cat cwj.pubkey
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)mQENBF2lgF8BCADTm1WgHwRvq4masvAnbTn00nykOq5xZxjGf8POtlyeG4ifrlN9
vPoQlZRpzJDDUEha6PJl+15QZBSROXkAiTNg5V9lMci+dh+O+Pc76wtL9zkyOD5b
VvCau2hjiCQPSpfiOln2ciGCw7/KyrmhLZG+S+KUPnUPiW8xl1v2zjC/MZr0pbnm
47+9Yt49wYlTxtoDMR30vTea8I0Q1DJnCdWYSpxLAD7E952LniJ8bObJLlph1I3G
SRilO6ypAqXO/OMLBDnztAZX3tO2ZZ6ZsrIqyhL3eXR2JLhGzjkNRAgm1+0Cifff
/dliZVg10SqEnm2V8loPfdfh57TPZAfecEArABEBAAG0EGNoZW53aiAodGVzdGtl
eSmJATkEEwECACMFAl2lgF8CGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAK
CRCACds1+RugD6UfCADI1KV7ws17fr0DdMdzIB3tcCAO60EIoU7aoyRkMHoC/KR0
joTKQsLeLtFjJVR+dS1bTC0NvTQHYEx1RBgyFxGohPKtlXSKmmOj7mCMsY4Zos3a
faCPFo0TMIocMfMmblpl0pW5RIQ2hTVQ+jjAO2PnA3wM6YFoYk9lisjYIFHkyprh
qBM56qZEK2l9XECXs8qpI8U3efeqTrIvzFynqH1AUv58+DXhU04Va/DWyXHIvbao
gLyNN7cZsVYw9H7kTFui3HJIs+IpbkdCKlniYrET1qMLO7Q/hEJb4Lr+WBrvaKxR
Nu480Aijrez0pxwTHWQa5fbeE2zFVc5dS9qCvMQeuQENBF2lgF8BCAC/F+JxP1Zt
iTR2WLVCFWZdMcZeBCKgzapoFFC/9nQ7G7A63FqRWEcs4Mv1idrV4sWxx/kPt3DN
1wnJ13TAvXc0ZwjryDMPR9+gBl99yvL4OwvoFjoVFpdX8oHZrQCGnfev04JyLKUh
R9v7AjRe2Lf7yykdFgyJwN9cn+VLnTbxrQgUrd/GstJ1A3LUIG/rSylUhUN9Ab5T
O0vDEBAo2djlcoPv/7CpVu4y2xOTqKzHyesEfHLeKN/ggYFhAjcRYUBm+g1FNpmA
OJeWUmvdOUp0wvOIV7mOu+oBFwrgIsaIMUN1+IOb7YdcA3NgHMmTHtVl+T+SRUHO
ZZTF/D6o40SFABEBAAGJAR8EGAECAAkFAl2lgF8CGwwACgkQgAnbNfkboA8xiQf8
DMX0tCGtE1YRSQMb+2GRsly1nlrIwybVr3sWLAb2fkpc/EgxVE2se1dGFRmOg+kB
CwvBr/A7fafydpp6lGR8oigve0RJFNTSW+2x2sIkfHGjGqbLGRbP2jLVbNmhKY3H
a4vYy3Kc0RR2xEoD3K5UCqYnUC+TyB0MAxac+b8rHJEMjOM6jdTg5n61Cl92D99J
B0rrUxEw5zljTTr85Hhdhkc2I+NwXPbInC9DRn1RKY0cIh4h6625FUduTDF5rAj0
xLh52ai8MdEzDuypJedncstuVE5jstA73wZw+0l/W5AYOMEqJ2aAXcYxkanti9tt
2FDmzz1D9fWNoeGERltRew==
=NLad
-----END PGP PUBLIC KEY BLOCK-----

3、从hostA主机上复制公钥文件到需加密的B主机上

[root@centos7 ~]# scp cwj.pubkey 192.168.147.128:
root@192.168.147.128's password:
cwj.pubkey                                                                                                                                100% 1699   825.4KB/s   00:00

4、在需加密数据的hostB主机上生成公钥/私钥对,步骤与上面的一样

[root@centos6 ~]# gpg --gen-key

查看公钥

[root@centos6 ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/DB9C138A 2019-10-14
uid                  magedu (test key)
sub   2048R/7B767173 2019-10-14

5、在hostB主机上导入公钥

[root@centos6 ~]# gpg --import chenwj.pubkey
gpg: key F91BA00F was created 52276 seconds in the future (time warp or clock problem)
gpg: key F91BA00F was created 52276 seconds in the future (time warp or clock problem)
gpg: key F91BA00F was created 52276 seconds in the future (time warp or clock problem)
gpg: key F91BA00F was created 52276 seconds in the future (time warp or clock problem)
gpg: key F91BA00F: no valid user IDs
gpg: this may be caused by a missing self-signature
gpg: Total number processed: 1
gpg:           w/o user IDs: 1

这里出现错误是因为主机时间和服务器的时间时区不一至导致的。因此我们得同步两台主机的时间,也可以同步NTP服务器(上海) :ntp.api.bz的时间。

[root@centos6 ~]# ntpdate -u ntp.api.bz
16 Oct 08:56:46 ntpdate[3563]: step time server 114.118.7.161 offset 106080.898783 sec
[root@centos6 ~]# date
Wed Oct 16 08:56:51 CST 2019

重新导入公钥

[root@centos6 ~]# gpg --import chenwj.pubkey
gpg: key F91BA00F: public key "chenwj (testkey)" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

查看hostB主机上的公钥gpg --list-keys,可以看到新导入的公钥。

[root@centos6 ~]# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub   2048R/DB9C138A 2019-10-14
uid                  magedu (test key)
sub   2048R/7B767173 2019-10-14pub   2048R/F91BA00F 2019-10-15
uid                  chenwj (testkey)
sub   2048R/D3D8AAC1 2019-10-15

导入公钥后,/root/.gnupg/pubring.gpg文件会变大。

[root@centos6 ~]# ll /root/.gnupg/
total 32
-rw------- 1 root root 7856 Apr 16 23:25 gpg.conf
drwx------ 2 root root 4096 Oct 15 01:35 private-keys-v1.d
-rw------- 1 root root 2352 Oct 16 09:08 pubring.gpg
-rw------- 1 root root 1176 Oct 15 01:36 pubring.gpg~
-rw------- 1 root root  600 Oct 16 10:31 random_seed
-rw------- 1 root root 2478 Oct 15 01:36 secring.gpg
-rw------- 1 root root 1280 Oct 15 01:36 trustdb.gpg

6、用从hostA主机导入的公钥,加密hostB主机的文件testfile,生成testfile.gpg

[root@centos6 ~]# gpg -e -r chenwj /data/testfile
gpg: D3D8AAC1: There is no assurance this key belongs to the named userpub  2048R/D3D8AAC1 2019-10-15 chenwj (testkey)Primary key fingerprint: 9830 7030 60DE B2D6 F45E  FAE3 8009 DB35 F91B A00FSubkey fingerprint: 5277 E439 1F04 6C6D 15FB  2BE6 DDC6 5396 D3D8 AAC1It is NOT certain that the key belongs to the person named
in the user ID.  If you *really* know what you are doing,
you may answer the next question with yes.Use this key anyway? (y/N) y

加密后生成的加密文件是testfile.gpg。可以用file testfile.gpg查看。

[root@centos6 ~]# file /data/testfile.gpg
/data/testfile.gpg: data

7、复制加密文件到hostA主机

[root@centos6 ~]# scp /data/testfile.gpg 192.168.147.129:
root@192.168.147.129's password:
testfile.gpg                                                                                                                              100%  354     0.4KB/s   00:00    

8、在hostA主机解密文件,解密后的文件为testfile

[root@centos7 ~]# gpg -o testfile -d testfile.gpg
gpg: 由 2048 位的 RSA 密钥加密,钥匙号为 D3D8AAC1、生成于 2019-10-15“chenwj (testkey)”
[root@centos7 ~]# ls
testfile  chenwj.pubkey   testfile.gpg

9、删除公钥和私钥,先删除私钥,

gpg --delete-keys chenwj
gpg --delete-secret-keys chenwj

使用gpg工具实现公钥加密相关推荐

  1. linux 自动化gpg,使用gpg工具实现公钥加密

    基本步骤和密令 在hostB主机上用公钥加密,在hostA主机上解密 一. 在hostA主机上生成公钥/私钥对 gpg –gen-key 在hostA主机上查看公钥 gpg –list-keys 从 ...

  2. Linux加密和安全

    墨菲定律  墨菲定律:一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出的,原话:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择 ...

  3. openssl、ssh

    PKI:公钥基础设施,保证服务器向客户端发送的证书的可靠性: 签证机构:CA 注册机构:RA 证书吊销列表:CRL 证书存取库:CAB 威瑞信--verisign GlobalSign 赛门铁克 As ...

  4. OpenSSH dropbear

    SSL/TLS: SSL:安全的套接字层:1.0 2.0 3.0 TLS:传输层安全:1.0 1.1 1.2 1.3 SSL会话过程四个阶段: SSL Handshake Protocol: 第一阶段 ...

  5. Linux-加密和安全

    本章内容 安全机制 对称和非对称加密 散列算法 gpg PKI和CA openssl 证书管理 ssh服务和dropbear aide Sudo TCP Wrappers PAM模块 墨菲定律 墨菲定 ...

  6. 通过GPG非对称加密工具验证ECharts发布版本实例演示,win10下Gnu Privacy Guard工具的安装和使用方法

    GPG 验证 ECharts 发布版本实例演示 第一章:Gpg 工具的安装 ① Gpg 工具的下载 ② Gpg windows 版 Gpg4win 的安装 ③ Gpg 安装是否成功状态检测 第二章:使 ...

  7. 安全与加密-使用gpg和openssl实现加密与解密

    加密可以分为对称加密和非对称加密.两者的主要区别就是是否使用同一个秘钥,对称加密需要用同一个秘钥.非对称加密不需要用同一个秘钥,而是需要两个秘钥:公开密钥(publickey)和私有密钥(privat ...

  8. 使用gpg来加密数据

    一.数据的加密方式 数据加密有三种方式: 1.对称加密(算法有:DES.AES.3DES.)加密和解密使用同一个密钥 2.非对称加密(RSA.DSA.ELGamal等等)一共四把钥匙,用公钥加密数据, ...

  9. gpg安装(加密解密)

    一:背景介绍: GPG这个加密解密工具其实用的很少,但在传统企业像银行系统与其交互上他们很多数据文件都是用gpg加密存储,防止数据外泄:(为了避开政府监视,开发了加密软件PGP.这个软件非常好用,迅速 ...

最新文章

  1. 【转载】浏览器事件循环机制(event loop)
  2. C语言实现,设计一个将所有奇数移动到偶数之前的算法
  3. 机器学习笔记的github镜像下载(github个人star数量排名175)
  4. 树莓派安装python3.5_梦见树_周公解梦梦到树是什么意思_做梦梦见树好不好_周公解梦官网...
  5. 2021届秋招算法岗真的要灰飞烟灭了吗?
  6. Advanced Custom Fields Pro 自定义文章字段 wordpress插件
  7. org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的概述
  8. Virtio SCSI设备介绍
  9. Python实现泛微OA云桥未授权任意文件读取
  10. 金融网站服务器防护CC攻击,WAF启到哪些重要作用?
  11. win10怎么快捷锁定计算机,win10一键快速锁屏快捷键的两种使用方法
  12. Linux deepin 15.11设置:输入时禁用触摸板
  13. Python实现鸡群算法
  14. 2021 年最值得推荐的 5 门人工智能编程语言
  15. mysql查询所有姓王的信息_MySQL(4)— 数据查询
  16. python在煤矿的用途-矿用非金属制品检测前处理方法研究
  17. 洛谷题单 算法1-3 暴力枚举
  18. 滤波器的抽头系数、通带、阻带、过渡带
  19. 小学生Python编程 —— 欢乐钢琴
  20. Excel-VBA 快速上手(六、工作表对象、Sheet 页的常用操作)

热门文章

  1. 加入收藏 设为首页 代码
  2. 中科红旗桌面操作系统V11无法自动更新解决办法
  3. C#按Excel 规则读取、写入CSV文件,放入DataTable,再读取、写入dataGridView内。包含解析转义字符,首行判断,转换完成信号等。
  4. NLP实践|CCKS2020金融知识图谱自动化构建技术方法总结
  5. 台式计算机除尘方法,台式电脑怎么清理灰尘
  6. LTE学习笔记:物理层
  7. scite 运行c语言,SciTE常用编译环境的配置,scite编译环境
  8. 利用opencv进行图片水印消除
  9. CSS实现页脚始终在页面底部
  10. java gif转jpg_Java gif图片转换为jpg格式