我正在使用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
答案 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"