我有一个gpg .key文件,用作解密.dat.pgp文件的密码。使用以下命令,已加密的.data.pgp文件在具有相同.key文件的一台服务器上成功解密。
cat xxx_gpg.key | /usr/bin/gpg --batch --quiet -o xxx.dat --passphrase-fd O -d xxx.dat.pgp
但是,当我将相同的密钥移至另一台服务器xxx_gpg.key并在上述命令上运行相同的命令时,出现以下错误-
gpg: decryption failed: No secret key
编辑:
[我发现gpg --list-secret-keys
在工作的服务器上返回了一些数据,但其他服务器未返回任何结果。
我们如何配置密钥
似乎该密钥不在另一台计算机上,因此即使使用正确的密码短语(从文件中读取),它也不起作用。
这些选项应该起作用,对
man gpg
中的一些有用的外观选项:
--export
从所有密钥环导出所有密钥(默认密钥环和那些通过选项--keyring
注册),或者至少给出一个名称,给定名称的那些。新的密钥环将写入STDOUT或使用选项--output
给出的文件。与--armor
一起使用邮寄那些钥匙。
--export-secret-keys
与--export
相同,但是导出秘密密钥。
--import
--fast-import
导入/合并键。这会将给定的密钥添加到密钥环。快的版本目前只是同义词。也许
--keyring file
将文件添加到当前的密钥环列表。如果文件以波浪号开头和一个斜杠,它们被$ HOME目录替换。如果文件-名称不包含斜线,假设位于GnuPG主页中目录(如果未使用--homedir或$ GNUPGHOME,则为“〜/ .gnupg”)。请注意,这会将密钥环添加到当前列表。如果意图是要单独使用指定的密钥环,请同时使用
--keyring
和--no-default-keyring
。
--secret-keyring file
与--keyring
相同,但用于秘密密钥环。
我刚刚在Arch Linux的gpg CLI上遇到了这个问题。我需要终止现有的“ gpg-agent”进程,然后一切恢复正常(自动启动了新的gpg-agent; ...)。
如果您在安装有GPG 2.x的系统上尝试su
加密其他用户时解密此机密,有时也会出现此错误。 This bug has been reported against RHEL 6,但没有可用的修复程序;显然,这是由于GPG 2.x中的某些设计决策所致。错误报告中建议的一种解决方法是在tmux或屏幕会话内部运行解密。 More reading here。