GNUPG:删除公钥时禁止显示消息

本文关键字:禁止显示 消息 公钥 删除 GNUPG | 更新日期: 2023-09-27 18:28:10

我使用GNUPG工具通过命令行执行加密/解密。删除公钥时,我将发出以下命令:gpg2--相当--是--删除密钥"Solveon DB"

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

我不想问这个问题。你能建议使用哪种选项吗。我试着指定指纹,但我不知道它的用途。1小时前-还有4天要回答。我创建了一个C#包装器类来使用该工具,但当使用delete选项时,它会挂起应用程序,等待问题的答案。其他详细信息

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

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

GNUPG:删除公钥时禁止显示消息

使用以下

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

请注意,只有当您想要删除公钥时,它才会起作用。

您的问题中有一个拼写错误(是--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

这里有另一个解决方案,可以删除所有密钥,然后删除"user123"密钥,过期和未过期。

第一个脚本是寻找指纹,并使一个实心数字字符串形成它们的符号(z.B.,ADFG1H3HJHG5HGTY6KJYY6KJHKK535JNNN)。

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"

经过自己的思考,我发现可以使用CMD删除公钥和私钥。这是我用来做这个的代码:

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

其中,文本+方括号由40位数字的密钥指纹代替,线条分别适用于公钥和私钥。我从powershell中调用了一个批处理文件来实现这一点,它工作得很好。