我正在尝试解密已使用 2 个收件人 (--recipientrecipientA@example.com --recipientrecipientB@example.com) 加密的文件。但是,当我尝试解密文件时,它总是请求第一个收件人的密码。当第一个收件人密钥不是密钥环的一部分时,它将给出错误“未找到密钥”。
如何加密具有多个收件人的文件,以便双方都可以在不知道对方密钥和密码的情况下解密它们?
(对我来说,这个问题似乎很简单,也是一个基本功能 - 但显然我无法让它发挥作用)
先感谢您!
我认为这种情况是在我更新最新的 OSX 版本后开始发生的,该版本可能包含也可能不包含新版本的 Git。但现在,几乎每次我尝试签署我的提交(通过git commit -S或git rebase -S):
不确定这是否是 Git 或 El Capitan 10.11.6 上的已知问题,但它变得令人烦恼,因为我总是签署我的 git 提交。
我还检查了没有其他 GPG 进程正在运行,什么也没有。
我到处搜索有关如何使用 org-crypt 在 org-mode 中使用密码保护特定标题的信息。大多数信息都说使用 org-crypt。我已将 org-crypt 行添加到我的 .emacs 中,但没有任何运气让它工作。我认为你还必须使用 gpg,但我仍然不确定。
我已经添加了:
(require 'org-crypt)
(org-crypt-use-before-save-magic)
(setq org-tags-exclude-from-inheritance (quote ("crypt")))
;; set to nil to use symmetric encryption.
(setq org-crypt-key nil)
Run Code Online (Sandbox Code Playgroud)
当我用 crypt 标签保存文件时,没有任何反应。我想我缺少某种连接代码。有人知道我做错了什么吗?提前谢谢了。
假设用户在 gpg 密钥环中列出了 2 个密钥(即,2 个密钥具有相同的电子邮件地址)。如何设置使用 2 个键中的哪一个?我唯一的输入是电子邮件,并且这两个键是相同的。
谢谢
我只需要信任一堆公钥就可以通过 pass 来使用它。不幸的是,我没有找到一种简单的方法来信任我本地存储的所有公钥。我发现它的收益按时间顺序相当昂贵:
> gpg --edit-key XXXXXXXXXXXXXXXX
gpg (GnuPG) 2.2.10; Copyright (C) 2018 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.
pub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: SC
trust: unknown validity: unknown
sub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: E
[ unknown] (1). email@example.com
gpg> trust
pub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: SC
trust: unknown validity: unknown
sub rsa4096/XXXXXXXXXXXXXXXX
created: …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我们想要测试 GPG 密钥过期时我们的产品的行为。所以我们希望密钥在很短的时间内过期,以便频繁地重复测试。
实际上,生成密钥时的提示信息明确表明过期的最小单位是“天”:
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
Run Code Online (Sandbox Code Playgroud)
但我仍然想问一个问题,以防万一有什么东西可以满足我的需求:是否可以将 GPG 密钥过期时间设置为短于一天(例如,一小时,甚至几分钟)?
如果没有这样的方法,我需要弄清楚如何重复我们的测试,而不必等待一整天。
所以看起来我的 gpg 密钥是秘密的,但是当我尝试在 git 中签署我的提交时,它不被识别为秘密。我完全不知道为什么会这样。我相信我的设置正确,但我的提交标志失败。难道我做错了什么?在此先感谢您的帮助。
[brad@reason entry-criteria-test]$ gpg --list-secret-keys --keyid-format LONG
/home/brad/.gnupg/secring.gpg
-----------------------------
sec 4096R/15980D34B4EED3FA 2019-03-11
uid Brad <brad@work.com>
ssb 4096R/3B437BF0F7366F6C 2019-03-11
[brad@reason entry-criteria-test]$ git config user.signingkey 15980D34B4EED3FA
[brad@reason entry-criteria-test]$ git config --global user.signingkey 15980D34B4EED3FA
[brad@reason entry-criteria-test]$ git commit -S -m "testing signed commit"
gpg: key B4EED3FA: secret key without public key - skipped
gpg: skipped "15980D34B4EED3FA": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
[brad@reason …Run Code Online (Sandbox Code Playgroud) 当我gpg --list-secret-keys --keyid-format LONG在 git 中运行时,我根本没有显示任何键。另一方面,当我运行相同的命令时,cmd或者PowerShell我得到一个看起来像这样的输出
我还gpg.program通过运行在全局配置文件中添加了配置git config --global gpg.program "/c/Program Files (x86)/GnuPG/bin/gpg.exe"。无济于事。知道我可能做错了什么吗?顺便说一句,我只使用 git bash,并没有将 git 集成到 Windows 中。
我在签署我的提交时遇到错误git commit -S -m 'test'并收到以下错误:
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个解决方案,但仍然无法正常工作。
也尝试过这个,但仍然一无所获。
我有配备最新 macOS 的 Macbook Pro 2017。
有没有其他解决方案可以修复它并正确地将我的提交提交到 Github 或 Gitlab?