用 PGP 保护代码完整性(三):生成 PGP 子密钥
创始人
2024-03-01 22:50:59
0

在第三篇文章中,我们将解释如何生成用于日常工作的 PGP 子密钥。

在本系列教程中,我们提供了使用 PGP 的实用指南。在此之前,我们介绍了基本工具和概念,并介绍了如何生成并保护您的主 PGP 密钥。在第三篇文章中,我们将解释如何生成用于日常工作的 PGP 子密钥。

清单

  1. 生成 2048 位加密子密钥(必要)
  2. 生成 2048 位签名子密钥(必要)
  3. 生成一个 2048 位验证子密钥(推荐)
  4. 将你的公钥上传到 PGP 密钥服务器(必要)
  5. 设置一个刷新的定时任务(必要)

注意事项

现在我们已经创建了主密钥,让我们创建用于日常工作的密钥。我们创建 2048 位的密钥是因为很多专用硬件(我们稍后会讨论这个)不能处理更长的密钥,但同样也是出于实用的原因。如果我们发现自己处于一个 2048 位 RSA 密钥也不够好的世界,那将是由于计算或数学有了基本突破,因此更长的 4096 位密钥不会产生太大的差别。

创建子密钥

要创建子密钥,请运行:

$ gpg --quick-add-key [fpr] rsa2048 encr
$ gpg --quick-add-key [fpr] rsa2048 sign

用你密钥的完整指纹替换 [fpr]

你也可以创建验证密钥,这能让你将你的 PGP 密钥用于 ssh:

$ gpg --quick-add-key [fpr] rsa2048 auth

你可以使用 gpg --list-key [fpr] 来查看你的密钥信息:

pub rsa4096 2017-12-06 [C] [expires: 2019-12-06]
 111122223333444455556666AAAABBBBCCCCDDDD
uid [ultimate] Alice Engineer 
uid [ultimate] Alice Engineer 
sub rsa2048 2017-12-06 [E]
sub rsa2048 2017-12-06 [S]

上传你的公钥到密钥服务器

你的密钥创建已完成,因此现在需要你将其上传到一个公共密钥服务器,使其他人能更容易找到密钥。 (如果你不打算实际使用你创建的密钥,请跳过这一步,因为这只会在密钥服务器上留下垃圾数据。)

$ gpg --send-key [fpr]

如果此命令不成功,你可以尝试指定一台密钥服务器以及端口,这很有可能成功:

$ gpg --keyserver hkp://pgp.mit.edu:80 --send-key [fpr]

大多数密钥服务器彼此进行通信,因此你的密钥信息最终将与所有其他密钥信息同步。

**关于隐私的注意事项:**密钥服务器是完全公开的,因此在设计上会泄露有关你的潜在敏感信息,例如你的全名、昵称以及个人或工作邮箱地址。如果你签名了其他人的钥匙或某人签名了你的钥匙,那么密钥服务器还会成为你的社交网络的泄密者。一旦这些个人信息发送给密钥服务器,就不可能被编辑或删除。即使你撤销签名或身份,它也不会将你的密钥记录删除,它只会将其标记为已撤消 —— 这甚至会显得更显眼。

也就是说,如果你参与公共项目的软件开发,以上所有信息都是公开记录,因此通过密钥服务器另外让这些信息可见,不会导致隐私的净损失。

上传你的公钥到 GitHub

如果你在开发中使用 GitHub(谁不是呢?),则应按照他们提供的说明上传密钥:

要生成适合粘贴的公钥输出,只需运行:

$ gpg --export --armor [fpr]

设置一个刷新定时任务

你需要定期刷新你的钥匙环,以获取其他人公钥的最新更改。你可以设置一个定时任务来做到这一点:

$ crontab -e

在新行中添加以下内容:

@daily /usr/bin/gpg2 --refresh >/dev/null 2>&1

**注意:**检查你的 gpggpg2 命令的完整路径,如果你的 gpg 是旧式的 GnuPG v.1,请使用 gpg2。

通过 Linux 基金会和 edX 的免费“Introduction to Linux” 课程了解关于 Linux 的更多信息。


via: https://www.linux.com/blog/learn/pgp/2018/2/protecting-code-integrity-pgp-part-3-generating-pgp-subkeys

作者:Konstantin Ryabitsev 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

PGP

相关内容

程序猿要chatpgpt干...
如何拥抱被chatpgpt拉开的人工智能大时代 昨天 chatgp...
2025-05-28 12:41:05
不在gitlog中显示pg...
在Git配置文件中设置选项,以告诉Git不要在log输出中展示PG...
2025-01-11 15:00:22
AWSKMS支持PGP加密...
目前 AWS KMS 已经支持使用 PGP 密钥对进行加密操作。例...
2024-11-19 08:00:51
AWSKMS支持PGP加密...
目前,AWS KMS不支持PGP加密,但可以使用其提供的其他加密服...
2024-11-19 08:00:10
参投国内首个旅游大模型,亚...
近日,推出国内旅游业首个AI大模型的视旅科技正式宣布完成A轮融资。...
2024-11-04 09:57:32
AI创新驱动文旅发展 打造...
近年来,人工智能领域技术发展迅速,创新成果不断融入社会各个领域,改...
2024-10-31 15:05:10

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...