Man*_*the 14 encryption ssis gnupg
没有密钥,我无法解密我的文件。我知道这个问题以前被问过,这个问题的解决方案对我没有帮助。
这是我的问题的场景。我在使用 --decrypt 命令时在命令提示符下收到此错误。
gpg:解密失败:没有密钥
我有公钥和密码。我使用以下命令来检查是否有密钥。
• gpg --list-secret-keys
• gpg --list-keys
以上两个命令都返回空白结果(没有错误)。所以我决定用 --import 导入公钥。
• gpg --import "C:\PATH\TO_MY_PUBLIC_KEY"
在 --import 命令之后,我可以看到 public 被导入。我找不到处理密钥的方法。有什么办法可以找到密钥或创建新的密钥。
Eli*_*kes 16
我还收到了来自相同 2 个命令的空白输出:
gpg --list-secret-keys
gpg --list-keys
Run Code Online (Sandbox Code Playgroud)
我有理由怀疑这与最近对~/.gnupg/pubring.kbx
文件的更改有关,这导致我运行以下 2 个命令来重新导入丢失的键:
重新导入丢失的密钥:
gpg --import < ~/.gnupg/secring.gpg
Run Code Online (Sandbox Code Playgroud)
重新导入丢失的公钥:
gpg --import < ~/.gnupg/pubring.gpg
Run Code Online (Sandbox Code Playgroud)
pubring.kbx
:https : //gpgtools.tenderapp.com/discussions/nightly/1415-gpg-keychain-broken-pubringkbx-filecin*_*ada 10
如果您的 pinentry 程序无法正常工作,并且 gpg 无法获取解锁解密密钥的密码,也可能会出现此消息。这种情况在我身上发生过几次。如果是这种情况,gpg -d -v
将出现选择正确的密钥,然后在放弃之前挂起一段时间。这是它在等待永远不会真正返回的松树。
这些步骤取决于您的具体环境,但检查(或创建)选项pinentry-program
是~/.gnupg/gpg-agent.conf
一个不错的起点。gpg
就我而言(在安装了 Homebrew 的 OS X 上pinentry-mac
),我必须创建包含以下内容的文件:
pinentry-program /usr/local/bin/pinentry-mac
Run Code Online (Sandbox Code Playgroud)
然后运行gpgconf --kill gpg-agent
以重新加载配置(gpg-agent
应该自动重新启动)。
无论您喜欢的 pinentry 程序是什么,您可能都需要调整上面的路径。locate pinentry
可能有助于查找您已安装的选项,或者which your-pinentry-program-here
如果您已经知道名称,则会告诉您完整路径。
非常简短的版本:没有密钥就无法解密。
GnuPG 要求提供密钥(如果您在某处读过,通常将其用作私钥的同义词),因此该消息是使用公钥/私钥加密技术进行加密的。您无法使用公钥解密消息,这是公钥/私钥加密背后的基本原理。秘密密钥可以使用密码保护,这就是为什么您可能有密码(尽管您丢失了密钥)。
如果您需要解密邮件,请询问私钥,或者要求发件人使用对称加密技术进行加密并与您共享密码。
我有同样的错误,但有不同的解决方案,这是在 OSX 上,但我认为在其他系统上也会类似。
这gpg-agent
似乎是罪魁祸首,因为我意识到我从来没有收到过pinentry
关于我的一把钥匙的问题。杀死它gpgconf --kill gpg-agent
解决了这个问题。当第一次调用需要它时,gpg-agent 将自动启动。确实,松树出现了,一切又恢复正常了。
归档时间: |
|
查看次数: |
46859 次 |
最近记录: |