Linux GnuPG 命令的基础知识

举报
Tiamo_T 发表于 2022/07/13 21:36:36 2022/07/13
【摘要】 在本文中,我们将介绍使用 gnupg 生成密钥的安装和基础知识。

GnuPG 代表 GNU 隐私保护。

GnuPG 是RFC 4880中定义的 OpenPGP(相当好的隐私)标准的开放实现。在本文中,我们将介绍使用 gnupg 生成密钥的安装和基础知识。

在基于 Debian 的系统上,使用以下命令安装 GnuPg 工具。

# apt-get install gnupg

使用 GnuPg 的第一步是创建公钥和私钥对。以下命令用于创建密钥。

$ gpg --gen-key

上述命令将在交互模式下运行。下面解释了需要给上述 gpg 命令提供的各种输入。

1. 选择要用于生成密钥的算法

gpg: directory `/home/lakshmanan/.gnupg' created
gpg: new configuration file `/home/lakshmanan/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/lakshmanan/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/lakshmanan/.gnupg/secring.gpg' created
gpg: keyring `/home/lakshmanan/.gnupg/pubring.gpg' created
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?

每种算法都有自己的优点和缺点。选择您喜欢的一种,或使用默认的 RSA 算法。按1Enter

2.选择密钥大小

选择算法后,它将询问密钥大小。


RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

通常,密钥大小越大,就越安全。实际上 2048 应该足够了。输入您的密钥大小或按Enter接受默认值。

3. 密钥有效性

我们需要提供的下一个输入是密钥的有效期。

Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0)

如果您不希望密钥过期,请键入0 。

它将再次要求确认。按Y

Key does not expire at all
Is this correct? (y/N) y

4. 创建用户 ID 和密码

每个键都将映射有用户 ID 和密码。现在它会询问您的姓名、电子邮件和密码

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) "

Real name: lakshmanan
Email address: admin@hgst.com.cn
Comment: My test GPG keys
You selected this USER-ID:
    "lakshmanan (My test GPG keys) "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

Enter Passphrase

5. 最终输出键

为了生成唯一的密钥,系统需要更多的随机字节。所以执行一些访问磁盘、网络等的操作,以便系统获得足够的随机字节。

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.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 39 more bytes)

一旦有足够的随机字节可用,就会生成密钥。

gpg: /home/lakshmanan/.gnupg/trustdb.gpg: trustdb created
gpg: key A7344E7D 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/A7344E7D 2012-10-12
      Key fingerprint = 3AE0 7948 C880 E5F7 F0A1  E16A 6EBB 3931 A734 4E7D
uid                  lakshmanan (My test GPG keys)
sub   2048R/96F8EF9B 2012-10-12

现在我们已经生成了用于 GnuPg 的密钥对。上面的输出提供了一些重要信息,例如

密钥 ID A7344E7D

我们将使用这个 Key-Id 进行各种操作,稍后我们会看到。

6.列出密钥对

您可以列出使用 –list-keys 和 –list-secret-keys 选项生成的密钥

$ gpg --list-keys
/home/lakshmanan/.gnupg/pubring.gpg
-----------------------------------
pub   2048R/A7344E7D 2012-10-12
uid                  lakshmanan (My test GPG keys)
sub   2048R/96F8EF9B 2012-10-12

$ gpg --list-secret-keys
/home/lakshmanan/.gnupg/secring.gpg
-----------------------------------
sec   2048R/A7344E7D 2012-10-12
uid                  lakshmanan (My test GPG keys)
ssb   2048R/96F8EF9B 2012-10-12

7. 导出你的公钥

现在我们已经生成了一个密钥对。下一步是在互联网上发布您的公钥(密钥服务器),以便其他人可以使用该公钥向您发送消息。

$ gpg --armor --export --output lakshmanan_pubkey.gpg lakshmanan

现在文件“lakshmanan_pubkey.gpg”将拥有我的公钥。您还可以使用您的 Key-Id 或邮件地址作为此命令的参数。

$ gpg --armor --export --output lakshmanan_pubkey.gpg A7344E7D

or

$ gpg --armor --export --output lakshmanan_pubkey.gpg 

现在您可以将文件发送给与您交谈的人。

8. 向密钥服务器提交密钥

如果您与很多人交谈,导出您的公钥并将其发送给个人会很麻烦。在这种情况下,您可以将您的公钥上传到服务器名称“Key-Sever”。因此,想要您的密钥的人可以从密钥服务器获得。

$ gpg --send-keys --keyserver keyserver.ubuntu.com A7344E7D

现在你应该对 GnuPG 有了一些基本的了解。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。