我们知道有一种非对称加密(asymmetric encryption),其原理简单而言如下:
假设A要安全保密的要求,与A进行传输的文件需要加密,且只有A才能解密,怎么办?
现在B要与A进行通信,B如何将A需要的文件加密传输呢?步骤如下:
第一步:A生成一对密钥,即公钥(Public key)与私钥(Private key)。
第二步:A将其公钥发给需要传输加密文件给他的B,即现在B拥有了A给他的公钥,当然,既然称为公钥,那么,这是可以公开的,公钥可以给很多人共享,本身没有强调保密。
第三步:B利用A给他的公钥将具有安全保密要求的文件进行加密,将加密后的文件传输给A,因为进行了加密,所以这是安全文件,第三方即使得到了此文件,也无法打开。
第四步:A利用自己所专有的私钥,对B传输过来的加密文件进行解密操作,还原文件真面目,就可以正常浏览访问了。
原理很简单吧!
在RHEL6中如何实现呢?现在我们来看看RHEL6中的操作步骤:
实验环境:A电脑root用户及B电脑root用户(当然也可以其他用户,但是A、B电脑要一致!)
第一步:在A电脑上,以root用户操作命令:
#gpg --gen-key
按照提示加密类型(如:默认RSA等)、密钥长度、用户ID以及访问私钥的密码等信息
完成后,会产生一对密钥,要记下key ID,
如果没有记下,也可以通过命令:#gpg --list-keys显示当前的这对密钥,其中就可以找到你生产的key ID.
第二步:在A上导出相应的公钥,其命令如下:
#gpg --export --armor key-ID >filename.key
这个导出的文件filename.key名称,可以根据自己的喜好来取名,呵呵。
这也就是我们在前面所讲到的公钥了,是可以公开发布共享的。
第三步:将这个公钥传送给其他人,如:B电脑,方式很多的,你可以用你的移动U盘来复制,也可以放在你的FTP中让B来下载,呵呵方式很多的。
第四步:在B电脑上,以用户root来操作,将公钥变为本地用于加密的密钥,其命令如下:
#gpg --import filename.key
这个文件就是A电脑上生成的公钥文件。
第五步:在B电脑上,以用户root来进行文件的加密操作,其命令如下:
#gpg --encrypt --armor -r key-ID file
file即是被加密的文件,该命令完成后,会产生一个以.asc结尾的同名的新的文件file.asc,这个文件就是加密后的文件,如果没有解密,打开就是密文,看不到明文的。
第六步:将此密文file.asc传给A,呵呵,方法也是很多,可以是移动U盘来复制,也可以是邮件或FTP等等方式。
第七部:A接收到这个密文file.asc后,在未解密前,看到了也是密文,因此要进行解密操作,因为A有私钥,呵呵,就是他能够解密了,其操作如下:
#gpg --decrypt file.asc >myfile
将file.asc文件解密为myfile文件,这是一个明文文件。
现在A就可以正常浏览文件了。
工作完成了!呵呵。
注:想了解更进一步的有关参数含义,可以通过帮助来详细了解,在此就不废话了。
阅读(4948) | 评论(0) | 转发(0) |