【问题标题】:GNUPG: Suppress message while deleting public keyGNUPG:在删除公钥时禁止消息
【发布时间】:2012-03-19 10:23:15
【问题描述】:

我正在使用 GNUPG 工具通过命令行执行加密/解密。在删除公钥时,我给出以下命令: gpg2 --quite --yes --delete-key "Solveon DB"

命令执行后,我得到了问题 从密钥环中删除此密钥? (是/否)

我不想问这个问题。你能建议使用哪个选项吗?我尝试指定指纹,但无法弄清楚用途。 1 小时前 - 还剩 4 天回答。我创建了一个 C# 包装类来使用该工具,但是当使用删除选项时,它会挂起应用程序,因为它正在等待问题的答案。 其他详细信息

命令链接: 我使用了从这个网站下载的软件: http://www.gpg4win.org/

http://www.linuxguide.it/command_line/linux-manpage/do.php?file=gpg

【问题讨论】:

    标签: c# wrapper gnupg


    【解决方案1】:

    使用关注

    gpg2 --batch --yes --delete-key "Solveon DB"
    

    请注意,它仅在您要删除公钥时才有效。

    【讨论】:

      【解决方案2】:

      您的问题中有一个错字(它是 --quiet,而不是 --quite),但这不会让 gpg2 完全安静下来。在这种情况下,您需要的选项是 --batch

      要在批处理模式下删除密钥,您必须使用指纹指定它。您可以使用以下命令找到密钥的指纹:

      $ gpg2 --list-keys --fingerprint
      /home/joeschmoe/.gnupg/pubring.gpg
      ----------------------------------
      pub   2048R/3C6033BD 2012-02-15
            Key fingerprint = EA8B 7339 D8AB 608D D9B6  BFA2 797B 679C 3C60 33BD
      uid                  Joe Schmoe <jschmoe@example.com>
      sub   2048R/8C61295F 2012-02-15
      

      指纹以 4 个字符组显示以便于阅读,但在使用它来识别要删除的键时,请去掉空格并仅使用指纹的 40 个字符:

      $ gpg2 --batch --delete-key EA8B7339D8AB608DD9B6BFA2797B679C3C6033BD
      

      【讨论】:

        【解决方案3】:

        这是删除所有密钥和“user123”密钥的另一种解决方案,已过期和未过期。

        第一个脚本正在寻找指纹并从它们的符号中生成一个实心数字字符串(z.B.,ADFG1HJH3JHG5HGTY6KJYY6KJHKK535JNNN)。

        gpg --list-keys --fingerprint | grep fingerprint | cut -c 25-74 | sed 's/ //g'

        其他代码一目了然。

        #!/bin/bash
        
        function myfunc()
        {
        
        local SKEY=$(gpg --list-keys --fingerprint | grep fingerprint | cut -c 25-74 | sed 's/ //g')
        
        echo "$SKEY"
        
        }
        
        SKEY1=$(myfunc)
        
        #echo $SKEY1
        
        gpg --batch --fingerprint --yes --delete-secret-key $SKEY1 <<EOF 
        
        $SKEY1 
        
        EOF
        
        #rm -rf ex.txt
        
        gpg --batch --yes --delete-key "user123"
        

        【讨论】:

        • 不要注意字符串:rm -rf ex.txt 应该没有:)
        【解决方案4】:

        在自己对此感到困惑之后,我发现您可以使用 CMD 删除公钥和私钥。这是我用于此的代码:

        gpg --batch --yes --delete-key [keyID]
        gpg --batch --yes --delete-secret-key [ClientKeyID]
        

        其中文本+方括号替换为40位密钥指纹,这些行分别适用于公钥和私钥。我从 powershell 中调用一个批处理文件来实现这一点,它运行良好。

        【讨论】:

          猜你喜欢
          • 2012-12-26
          • 2015-09-07
          • 2019-09-29
          • 2014-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-06-29
          • 1970-01-01
          相关资源
          最近更新 更多