Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption gpg:解密失败:没有密钥_Encryption_Ssis_Gnupg - Fatal编程技术网

Encryption gpg:解密失败:没有密钥

Encryption gpg:解密失败:没有密钥,encryption,ssis,gnupg,Encryption,Ssis,Gnupg,没有密钥,我无法解密我的文件。我知道以前有人问过这个问题,但这个问题的解决方案对我并没有帮助 这就是我的问题所在。 我在使用--decrypt命令时在命令提示符下收到此错误 gpg:解密失败:没有密钥 我随身带着公钥和密码。 我使用了以下命令来检查是否有密钥 •gpg——列出密钥 •gpg——列出密钥 上述两个命令都返回空白结果(无错误)。所以我决定用import导入公钥 •gpg--导入“C:\PATH\到\u我的\u公钥” 在--import命令之后,我可以看到public被导入。我找不到处

没有密钥,我无法解密我的文件。我知道以前有人问过这个问题,但这个问题的解决方案对我并没有帮助

这就是我的问题所在。 我在使用--decrypt命令时在命令提示符下收到此错误

gpg:解密失败:没有密钥

我随身带着公钥和密码。 我使用了以下命令来检查是否有密钥

•gpg——列出密钥

•gpg——列出密钥

上述两个命令都返回空白结果(无错误)。所以我决定用import导入公钥

•gpg--导入“C:\PATH\到\u我的\u公钥”


在--import命令之后,我可以看到public被导入。我找不到处理密钥的方法。有什么方法可以找到密钥或创建新密钥。

非常简短的版本:没有密钥就无法解密

GnuPG要求提供密钥(如果您在某处读到该密钥,则通常用作私钥的同义词),因此使用公钥/私钥加密对消息进行加密。不能使用公钥解密消息,这是公钥/私钥加密背后的基本原理。密钥可以使用密码短语进行保护,这就是为什么您可能会使用密码短语(尽管您丢失了密钥)


如果需要解密邮件,请请求私钥,或者请求发件人使用对称加密技术进行加密,并与您共享密码短语。

我还收到来自相同2个命令的空白输出:

gpg --list-secret-keys
gpg --list-keys
我有理由怀疑这与最近对
~/.gnupg/pubring.kbx
文件所做的更改有关,这导致我运行以下两个命令来重新导入丢失的密钥:

重新导入丢失的密钥:

gpg --import < ~/.gnupg/secring.gpg
gpg——导入<~/.gnupg/secring.gpg
重新导入丢失的公钥:

gpg --import < ~/.gnupg/pubring.gpg
gpg——导入<~/.gnupg/pubring.gpg
  • 上述命令的文档:
  • 损坏的
    publing.kbx

如果导入&然后信任(最终)并可以使用
gpg--列出密钥查看密钥,但当您去解密时,它告诉您找不到密钥,请将
--batch
添加到您的decrypt命令中。

在我的情况下,系统上同时安装了gpg(1.x)和gpg2,GPG1.x不支持我的ed25519密钥

通过查看版本grep for
Pubkey

/usr/bin/gpg --version 
/usr/bin/gpg2 --version
如果是这种情况,请尝试
gpg2——列出密钥

如果可行,请将别名添加到.bashrc并将符号链接到~/bin(对于git)

然后,
gpg--list secret keys
输出不再为空


也许这并不能解决OP的问题,但希望这能帮助到其他人。

您可以使用以下命令忽略此错误:
导出GPG_TTY=$(TTY)
如果您的pinentry程序工作不正常,GPG无法获取密码来解锁解密密钥,也会出现此消息。这种事在我身上发生过好几次。如果是这种情况,
gpg-d-v
将出现,选择正确的键,然后在放弃之前挂起一段时间。这是在等待永远不会回来的松树园

这些步骤取决于您的特定环境,但在
~/.gnupg/gpg agent.conf
中选中(或创建)pinentry程序选项是一个很好的开始。在我的情况下(在安装了自制
gpg
pinentry mac
的OS X上),我必须创建包含以下内容的文件:

pinentry-program /usr/local/bin/pinentry-mac

您可能需要根据需要调整您喜欢的pinentry程序。

我也有同样的错误,但有不同的解决方案,这是在OSX上,但我认为在其他程序上也会类似

gpg代理似乎是罪魁祸首,因为我意识到我的一把钥匙从来没有得到过
pinentry
问题。
用gpgconf杀死它——杀死gpg代理解决了这个问题。在第一次需要它的呼叫中,gpg代理将自动启动。确实,pinentry出现了,一切又恢复正常。

在将Ubuntu从
16.04
升级到
18.04
之后,我现在丢失了我的密钥。使用此方法重新导入对我有效。它也对我有效,谢谢:-)`/.gnupg/secring.gpg`为空相关:macOS Big Sur用户在这里,也使用自制。我对以上的一切一无所知。我想我可能已经通过自制升级了gpg,完全忘记了检查
gpg代理
配置是否需要任何更改。。。在任何情况下,我都不知道该在哪里改变什么。非常感谢。
pinentry-program /usr/local/bin/pinentry-mac