在这里设置密码,需要输入两次(这个密码是李四设置的,只有李四知道,不能告诉其他任何人)
然后产生密钥对
生成成功后,再次使用下面命令查看就会有密钥信息了
[root@lisi ~]# gpg2 -k
[root@lisi ~]# gpg2 -K
=============================================================================
如果在创建密钥对这一步会卡住,报随机数不够的错误;解决方法:
--打开另外一个终端,并使用下面的命令查看系统随机数
# cat /proc/sys/kernel/random/entropy_avail
--随机数不够,可以在生成这对密钥时,再开一个终端用下面的命令生成一下(如果没有rngd命令,则yum install
rng-tools)
# rngd -r /dev/urandom -o /dev/random -f
========================================================================
第二步:李四把自己的公钥传给张三导入
1, 在李四电脑上将公钥传给张三
[root@lisi ~]# gpg2 --export > lisi.asc 导出公钥,后缀为.asc
[root@lisi ~]# scp lisi.asc zhangsanIP:/root/ 传给另一台模拟张三的电脑
2, 在张三电脑上导入李四传过来的公钥(再次确认时间同步,然后导入)
[root@zhangsan ~]# gpg2 --import /root/daniel.asc
[root@zhangsan ~]# gpg2 -k
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/001CB3D4 2015-10-08 [expires: 2015-10-09]
uid lisihaha (@_@) <lisihaha@itcast.com>
sub 2048R/7F9ADD4B 2015-10-08 [expires: 2015-10-09]
第三步: 张三使用李四的公钥加密一个文件
1, 在张三电脑上准备一个文件,并使用李四的公钥加密, -e代表非对称加密,-r参数后接公钥的名字
[root@zhangsan ~]# echo "lisi,I love you" > test2
[root@zhangsan ~]# gpg2 -e -r lisihaha test2
加密时有这句话表示公钥不受信任(也就是说它不能确定这个公钥就一定属于叫lisihaha的人,那么怎么解决?需要
CA认证,后面再讨论)
It 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.
第四步, 把加密的文件传回给李四,这里假设传给李四的/opt/目录
[root@zhangsan ~]# scp /test2.gpg lisiIP:/opt/
第五步, 李四电脑上操作解密,会使用自己的私钥去解密,可以解密成功(用李四自己的私钥密码,这个密码只有李四
知道)
[root@lisi ~]# cd /opt
[root@lisi ~]# gpg2 -d test2.gpg