使用GPG命令对文件进行对称加(解)密与非对称加(解)密。
对称加密命令如下:
新建一个任意文件,并对其加密。
gpg -c 文件 //提示输入密码,且需要两次
加密后生成一个文件:文件.gpg
对称解密命令如下:
gpg -d 文件.gpg
非对称加密:
需要创建一对匹配的公私钥,公钥加密,私钥解密。
生成秘钥对之前先清空gnupg文件夹:
rm -rf /root/.gnupg/
使用 gpg --gen-key 命令生成秘钥对:
]# 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 (仅用于签名) 您的选择? RSA 密钥长度应在 1024 位与 4096 位之间。 您想要用多大的密钥尺寸?(2048) 您所要求的密钥尺寸是 2048 位 请设定这把密钥的有效期限。 0 = 密钥永不过期 <n> = 密钥在 n 天后过期 <n>w = 密钥在 n 周后过期 <n>m = 密钥在 n 月后过期 <n>y = 密钥在 n 年后过期 密钥的有效期限是?(0) 密钥永远不会过期 以上正确吗?(y/n)y You 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) <[email protected]>" 真实姓名:teddyou 电子邮件地址:[email protected] 注释:null 您选定了这个用户标识: “teddyou (null) <[email protected]>” 更改姓名(N)、注释(C)、电子邮件地址(E)或确定(O)/退出(Q)?O 您需要一个密码来保护您的私钥。 我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动 鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。 我们需要生成大量的随机字节。这个时候您可以多做些琐事(像是敲打键盘、移动 鼠标、读写硬盘之类的),这会让随机数字发生器有更好的机会获得足够的熵数。 gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库 gpg: 密钥 3AD43615 被标记为绝对信任 公钥和私钥已经生成并经签名。 gpg: 正在检查信任度数据库 gpg: 需要 3 份勉强信任和 1 份完全信任,PGP 信任模型 gpg: 深度:0 有效性: 1 已签名: 0 信任度:0-,0q,0n,0m,0f,1u pub 2048R/3AD43615 2019-01-28 密钥指纹 = 80DC 9B7D 2836 F83A 3252 48B5 2056 677E 3AD4 3615 uid teddyou (null) <[email protected]> sub 2048R/FC85D2A6 2019-01-28 ┌─────────────────────────────────────────────────────┐ │ 请输入密码 │ │ │ │ │ │ Passphrase ________________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ 输入两次密码确认。
生成文件如下:
[root@7 ~]# cd ~/.gnupg/ [root@7 .gnupg]# ls gpg.conf pubring.gpg random_seed S.gpg-agent private-keys-v1.d pubring.gpg~ secring.gpg trustdb.gpg
其中公钥为:pubring.gpg
私钥为:secring.gpg
导出公钥,并发送给其他主机:
[root@8 .gnupg]# gpg --export -a > user.pub [root@8 .gnupg]# scp user.pub 176.204.22.100:/root
导入其他主机发来的公钥文件:
[root@7 ~]# rm -rf /root/.gnupg/ [root@7 ~]# gpg --import ./user.pub gpg: 已创建目录‘/root/.gnupg’ gpg: 新的配置文件‘/root/.gnupg/gpg.conf’已建立 gpg: 警告:在‘/root/.gnupg/gpg.conf’里的选项于此次运行期间未被使用 gpg: 钥匙环‘/root/.gnupg/secring.gpg’已建立 gpg: 钥匙环‘/root/.gnupg/pubring.gpg’已建立 gpg: /root/.gnupg/trustdb.gpg:建立了信任度数据库 gpg: 密钥 3AD43615:公钥“teddyou (null) <[email protected]>”已导入 gpg: 合计被处理的数量:1 gpg: 已导入:1 (RSA: 1)
公钥加密文件:(-r 跟上创建秘钥对时输入的真实姓名)
gpg -e -r teddyou 文件
私钥解密文件:
gpg -d 文件.gpg
发表评论