如何处理Gnupg错误:gpg:没有默认密钥:没有密钥gpg:[stdin]:clearsign失败:没有密钥?

时间:2012-06-01 10:49:57

标签: gnupg

我收到错误:

gpg: no default secret key: No secret key
gpg: [stdin]: clearsign failed: No secret key

我的密钥可供GPG使用。

3 个答案:

答案 0 :(得分:2)

这个令人困惑的错误信息浪费了我好几天的时间。我将我的 maven 项目部署到 maven central,它一直在工作,但突然它在没有提示密码的情况下给出了这个消息。搜索了所有答案并没有解决我的问题。最终,我发现我的密钥已过期

gpg --list-keys

所以我需要使用 gpg --edit key

并确保更新两个密钥。

答案 1 :(得分:1)

gpg1和gpg2可能有区别。密钥以不同方式存储。你可能同时拥有它们。

尝试

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
    OldWindowProc = RichEdit1->WindowProc;
    RichEdit1->WindowProc = NewWindowProc;
    DragAcceptFiles(RichEdit1->Handle, true);
}    

void __fastcall TForm1::NewWindowProc(TMessage& Msg)
{
    switch (Msg.Msg) {
        case WM_DROPFILES:
        {
            HDROP DropH = (HDROP)Msg.WParam;
            int droppedFileCount = DragQueryFile(DropH, 0xFFFFFFFF, NULL, 0);
            TStringList* Buffer = new TStringList();
            for (int i = 0; i < droppedFileCount; i++) {
                int fileNameLength = DragQueryFile(DropH, i, NULL, 0);
                String FileName;
                FileName.SetLength(fileNameLength);
                DragQueryFile(DropH, i, FileName.w_str(), fileNameLength + 1);
                Buffer->LoadFromFile(FileName);
                RichEdit1->Lines->AddStrings(Buffer);
                RichEdit1->Lines->Add("");
            }
            delete Buffer;
            DragFinish(DropH);
            Msg.Result = 0;
            break;
        }
        case CM_RECREATEWND:
            DragAcceptFiles(RichEdit1->Handle, true);
            break;
    default:;
    }
    OldWindowProc(Msg);
}        

如果你有两者,请运行:

which gpg gpg2

你可能会说一个有效,另一个没有。

答案 2 :(得分:0)

这里的答案是:我使用的是最新的gnupg版本,但我必须使用0.44 gnupg接口版本。我重新安装了gnupg。

然后没有找到编译错误。我能够签署我的信息。但无法发送请求。问题是我没有安装LWP :: Protocol :: Https模块,该模块由&#34; Useragent&#34;发送请求。(我开始知道我没有通过保持简单的打印语句来安装模块,这些语句显示了找不到LWP :: Protocol :: Https的问题)。所以我通过cpan安装了LWP :: Protocol :: Https模块。我很高兴。最后全部设定: - )