Linux下使用GPG加密解密的说明及示例

1、生成密钥对:gpg –gen-key
为用户生成新密钥对。需提供:密钥类型(默认为RSA/RSA);密钥长度(以位为单位,越长越强);过期时间(以防密钥损坏);(通常我都是一路回车过去)接下来的还是要填一填的:名称、电子邮箱、标识密钥所有者的注释;密码短语(必须提供,如果私钥被盗,将无法使用)。
2、列出公钥:gpg –list-keys
列出所拥有的公钥:他们自己的公钥以及从与之通信的其他人那里导入的任何公钥。
3、导出公钥:gpg –export –armor key-id -o file.key
将公钥导出至文件,以便于其他人使用。–armor选项以文本形式显示输出,而非二进制格式。key-id是电子邮箱地址或在–list-keys的pub行中列出的八位十六进制数。
4、导入公钥:gpg –import file.key
从发送给您的密钥文件中导入其他人的公钥
5、加密文件:gpg –encrypt –armor -r key-id file
用key-id的公钥加密消息。如果未提供-r key-id,命令将提示收件人输入。默认输出文件为file.asc.
6、解密文件:gpg –decrypt file
用您的私钥之一解密用公钥加密的消息。
示例:
创建属于您自己的公钥/ 私钥对。

[sjx@server1 ~]$ gpg --gen-key
gpg (GnuPG) 2.0.14; Copyright (C) 2009 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.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?    Enter
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)    Enter
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0)    Enter
Key does not expire at all
Is this correct? (y/N)  y
GnuPG needs to construct a user ID to identify your key.
Real name: shangjx
Email address: shangjx13@gmail.com
Comment: Enter
You selected this USER-ID:
"xiyou<sjx@server1.example.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?    o
You need a Passphrase to protect your secret key.
can't connect to `/home/linuxidc/.gnupg/S.gpg-agent': No such file or directory
gpg-agent[2008]: directory `/home/linuxidc/.gnupg/private-keys-v1.d' created
(此时会弹出图形应用程序,输入并验证密钥)
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: key CA83F5AF marked as ultimately trusted
public and secret key created and signed.
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
pub 2048R/CA83F5AF 2011-08-15
Key fingerprint = F886 17A2 F832 B545 6E27 B424 E539 26BF CA83 F5AF
uid
xiyou<sjx@server1.example.com>
sub 2048R/DB58BFCE 2011-08-15

若要导出密钥,请在上面的输出中查找密钥ID 。可以在上面的pub 2048R/ 输出的后面找到。在给示例中密钥ID 是CA83F5AF 。以下示例将显示使用该密钥ID 的命令。
●导出您的公钥,与合作伙伴共享。

[linuxidc@server1 ~]$ gpg -a -o ~/pub.key --export CA83F5AF

●将导出的公钥复制到合作伙伴的server2 上。

[linuxidc@server1 ~]$ scp pub.key server2.example.com:~

●导入合作伙伴的公钥。

[linuxidc@server2 ~]$ gpg --import pub.key
gpg: directory `/home/linuxidc/.gnupg' created
gpg: new configuration file `/home/linuxidc/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/linuxidc/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/linuxidc/.gnupg/secring.gpg' created
gpg: keyring `/home/linuxidc/.gnupg/pubring.gpg' created
gpg: /home/linuxidc/.gnupg/trustdb.gpg: trustdb created
gpg: key CA83F5AF: public key "westos <linuxidc@server1.example.com>" imported
gpg: Total number processed: 1
gpg:
imported: 1 (RSA: 1)

●创建一个文本文件,内含供合作伙伴阅读的消息。

[linuxidc@server2 ~]$ echo “xi’an university of posts and telecommunications” > encrypt.txt

●用合作伙伴的公钥加密文件。www.2cto.com

[linuxidc@server2 ~]$ gpg --encrypt --armor -r CA83F5AF encrypt.txt
gpg: CA83F5AF: There is no assurance this key belongs to the named user
pub 2048R/CA83F5AF 2011-08-15 xiyou <sjx@server1.example.com>
Primary key fingerprint: 7F44 7AE0 A7C2 6E89 6C68 6FE2 5572 8249 3F7B CEB5
Subkey fingerprint: 8FCB BF3E 2D51 563F 1C3F 2440 FC81 0D73 A353 A3BF
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.
Use this key anyway? (y/N) y

●将加密文件复制合作伙伴。

[linuxidc@server2 ~]$ scp encrypt.txt.asc server1.example.com:~

●解密合作伙伴已加密的文件并验证您可以查看他们所发送的消息。

[linuxidc@server1 ~]$ gpg --decrypt encrypt.txt.asc
You need a passphrase to unlock the secret key for
user: "xiyou <sjx@localhost>"
2048-bit RSA key, ID DB58BFCE, created 2011-08-15 (main key ID CA83F5AF)
can't connect to `/home/linuxidc/.gnupg/S.gpg-agent': No such file or directory
gpg: encrypted with 2048-bit RSA key, ID DB58BFCE, created 2011-08-15
"xiyou<sjx@server1.example.com>"
xi'an university of posts and telecommunications

openSUSE下玩转GPG图文详解
Linux下gpg的简单应用
GPG作者差点破产,危机已过

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,可以使用tar命令对文件或目录进行打包和压缩。然而,tar命令本身并不提供加密和解密功能。如果你想在使用tar命令进行打包和压缩的同时实现加密和解密,你可以考虑使用其他工具结合tar命令来实现。 一种常见的做法是使用GnuPG(GNU Privacy Guard)工具。GnuPG是一个开源的加密软件,可以用于加密和解密文件。下面是一个简单的步骤示例: 1. 首先,你需要安装GnuPG。你可以通过在终端中运行以下命令来安装它: ``` sudo apt-get install gnupg ``` 2. 接下来,你需要生成一个加密密钥对。你可以使用以下命令生成密钥对: ``` gpg --gen-key ``` 3. 生成密钥对后,你可以使用以下命令来加密文件或目录: ``` tar -cz <要加密的文件或目录> | gpg -c -o <加密后的文件.tar.gz.gpg> ``` 这个命令将使用tar命令对文件或目录进行打包和压缩,并通过GnuPG工具进行加密。加密后的文件将保存为一个以".tar.gz.gpg"为扩展名的文件。 4. 如果你想解密加密后的文件,可以使用以下命令: ``` gpg -d <加密后的文件.tar.gz.gpg> | tar -xz ``` 这个命令将使用GnuPG工具对加密文件进行解密,并使用tar命令对解密后的文件进行解压缩。 请注意,加密和解密过程中,你需要提供正确的密钥和密码。确保你妥善保存了密钥和密码,以免丢失无法解密加密文件。 希望这可以帮助到你!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值