我通过执行以下命令使用 GPG 生成了密钥
gpg --gen-key
Run Code Online (Sandbox Code Playgroud)
现在我需要将密钥对导出到一个文件中;即分别是private.pgp和 的私钥和公钥public.pgp。我该怎么做?
我喜欢用我的 PGP 密钥签署我的 git 提交,所以当我去的时候我很震惊,git commit -S但没有提示我输入 PGP 密钥密码,git 刚刚开始挂起。几个月来我没有对我的 GPG 设置进行任何更改,并且从那时起进行了多次提交,没有任何问题。此外,当我尝试使用 来查看我的私钥时gpg -K,gpg 会挂起。但是,当我运行gpg -k查看我的公钥时,它会像往常一样返回列表。希望有人会对导致此问题的原因以及如何解决此问题有所了解。
AFAIK 关于 gpg/pgp 的基本概念是,对于想要在他们之间建立信任的两个人来说,发布公钥和私钥(私钥由创建它的用户保存,不共享)具有强度(一次 1024 位,现在 4096 位,将来 8192 位,依此类推)。
现在,他们两个需要将他们的公钥发布到密钥服务器(类似于电话目录),并提供指向发布这些密钥的密钥服务器的链接。
现在,如果我去服务器说https://pgp.mit.edu/并搜索 ashish,我将需要很多
https://pgp.mit.edu/pks/lookup?op=get&search=ashish&op=index
假设我想要的 Ashish 是这个 DAD95197(只是一个例子)我将如何导入该公钥?
我确实尝试过
??[$] gpg --keyserver pgp.mit.edu --recv-keys DAD95197
gpg: keyserver receive failed: No keyserver available
Run Code Online (Sandbox Code Playgroud)
但可以看出那没有用。
我正在尝试ncurses5-compat-libs使用packer.
但我收到此错误:
==> 错误:无法验证一个或多个 PGP 签名!
我该如何解决?
该密钥目前的有效性未知:
$ gpg --edit-key some.user
pub rsa4096/FAC6C35BDFF9359A
created: 2020-03-01 expires: 2022-03-01 usage: SC
trust: full validity: unknown
sub rsa4096/CDA6BEA851FFCE2E
created: 2020-03-01 expires: 2022-03-01 usage: E
[ unknown] (1). Some User <some.user@example.org>
Run Code Online (Sandbox Code Playgroud)
有效性是根据签名计算的。“至少一个完全信任的密钥必须签署另一个密钥才能使密钥有效。” 由于我最终信任自己的密钥,这意味着如果我签署某个用户的密钥,它也应该变得有效。
我已经签署了该用户的密钥:
$ gpg --list-signatures some.user
pub rsa4096 2020-03-01 [SC] [expires: 2022-03-01]
E9E7BDF5FB135FF9858ABAAAB007FDB2
uid [ unknown] Some User <some.user@example.org>
sig 3 FAC6C35BDFF9359A 2020-03-01 Some User <some.user@example.org>
sig 12CA169A2B5A5CFC 2020-03-15 Luc <luc@example.org>
sig 3 FAC6C35BDFF9359A 2021-03-01 Some User <some.user@example.org>
sub rsa4096 2020-03-01 [E] [expires: 2022-03-01]
sig FAC6C35BDFF9359A …Run Code Online (Sandbox Code Playgroud) 我最近添加trust-model tofu+pgp了我的.gnupg/gpg.confto use TOFU并自动信任(边缘)我第一次看到的电子邮件中的密钥。它具有使 PGP 的输出极其冗长的不良后果:
gpg: Verified 1 message signed by "Foo <foo@foo.org>" (key: F00 BA8 …, policy: auto) in the past 32 minutes, 19 seconds.
gpg: Warning: we've only seen a single message signed by this key!
gpg: Warning: if you think you've seen more than 1 message signed by this key, then this key might be a forgery! Carefully examine the email address for small variations (e.g., additional white space). If the …Run Code Online (Sandbox Code Playgroud) 我使用 GPG 创建并对称加密了一个文件:
touch test.txt && echo 'test' >> test.txt
gpg --output test.txt --symmetric test.txt
Run Code Online (Sandbox Code Playgroud)
但现在我不知道如何解密它,而且令人惊讶的是,我在网上找不到示例。这是我尝试过的:
touch test.txt && echo 'test' >> test.txt
gpg --output test.txt --symmetric test.txt
Run Code Online (Sandbox Code Playgroud)
$ gpg --decrypt test.txt
gpg: AES encrypted data
gpg: encrypted with 1 passphrase
Run Code Online (Sandbox Code Playgroud)
$ gpg --symmetric --decrypt test.txt
gpg: conflicting commands
Run Code Online (Sandbox Code Playgroud)
$ gpg --passphrase --decrypt test.txt
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: Unknown system error
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我明白了
gpg: WARNING: The GNOME keyring manager hijacked the GnuPG agent.
gpg: WARNING: GnuPG will not work proberly - please configure that tool to not interfere with the GnuPG system!
Run Code Online (Sandbox Code Playgroud)
当我将 gnupg-agent 与 mutt 一起使用时。但是警告没有给我解决问题的线索,我也无法从 GNOME 文档中找到信息。
我的 GnuPG 密钥环中有多个用户的一些公钥。其中一个用户已切换到新的公钥。我仍然拥有用户的旧密钥,该密钥的分配信任为ultimate. 我刚刚为他的新密钥分配了相同的信任。
他不再使用旧钥匙了。旧钥匙该怎么办?我应该撤回信任,还是撤销信任?在这种情况下,正确的程序是什么?
此服务已弃用。这意味着它不再被维护,并且不会发出新的 HKPS 证书。不应期望服务可靠性。
2021 年 6 月 21 日更新:由于更多 GDPR 删除请求,将不再提供池的 DNS 记录。
gpg --keyserver "$keyserver1" --recv-key keyid我可以使用哪些密钥服务器,我预计不会很快消失?