我使用加密文件gpg,现在我想解密文件.
有没有办法解密文件而无需导入秘密文件?
我们在一个名为的文件中有密钥key.sec; 我们可以将秘密文件传递gpg给参数(当我们从命令行运行decrypt命令bash时)在解密加密文件时使用吗?或者我们必须导入密钥然后解密加密文件?
sar*_*old 11
您必须将密钥添加到密钥环.从gpg(1)文档:
--no-default-keyring
Do not add the default keyrings to the list of
keyrings. Note that GnuPG will not operate without any
keyrings, so if you use this option and do not provide
alternate keyrings via --keyring or --secret-keyring,
then GnuPG will still use the default public or secret
keyrings.
Run Code Online (Sandbox Code Playgroud)
您可以--import --no-default-keyring --secret-keyring temporary导入密钥,--secret-keyring temporary在解密内容时使用,然后~/.gnupg/temporary.gpg在完成后删除文件.但这只是一种解决方法.
您必须导入密钥才能使用它,但是GnuPG 2.x版管理密钥的方式已更改。有一个gpg-agent处理秘密密钥访问的守护程序,从2.1版本开始必须使用它。
您可以通过以下方法快速创建临时密钥环,以使用文件中包含的密钥进行解密:
$ mkdir -m 700 ~/.gnupg-temp
$ gpg --homedir .gnupg-temp --import key.sec
$ gpg --homedir .gnupg-temp -d an_ecrypted_file
Run Code Online (Sandbox Code Playgroud)
如果之后要清理,请停止代理并删除目录:
$ gpg-connect-agent --homedir .gnupg-temp KILLAGENT /bye
$ rm -r ~/.gnupg-temp
Run Code Online (Sandbox Code Playgroud)
--secret-keyring关于2.1版的文档,过去曾经有一个选项可以这样说:
这是一个过时的选项,将被忽略。所有秘密密钥都存储在GnuPG主目录下的private-keys-v1.d目录中。
的private-keys-v1.d目录(wthin的--homedir或~/.gnupg)是拥有和由代理操作。