GNUPG:删除公钥时抑制消息

时间:2012-03-19 10:23:15

标签: c# wrapper gnupg

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

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

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

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

使用以下

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

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

答案 2 :(得分:0)

这是另一种删除所有秘密密钥,然后删除“ 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"