Pat*_*ery 8 gpg pgp public-key
有时我可能想使用某人的 gpg 密钥来发送消息,但不需要再次使用该密钥。
在这种情况下导入密钥似乎没有必要。
我已经搜索过,但找不到任何表明这是可能的。每次都必须执行 --delete-keys 有点烦人。
GnuPG 要求将您要使用的所有密钥导入到密钥环中。
如果您不想将其导入普通密钥环,请使用另一个(临时)密钥环,甚至是临时 GnuPG 主目录(这也将绕过任何配置)。
设置--primary-keyring temporary.gpg为默认使用(并在必要时创建)临时密钥环。它将在您的 GnuPG 主目录中创建(~/.gnupg/temporary.gpg默认情况下)。您的普通钥匙圈仍然可用,但导入将转到临时钥匙圈。根据需要删除它。
例如:
gpg --primary-keyring temporary.gpg --import key.asc
gpg --primary-keyring temporary.gpg --recipient 0xDEADBEEF --encrypt
rm ~/.gnupg/temporary.gpg # can be omitted, not loaded by default
Run Code Online (Sandbox Code Playgroud)
这也将重置所有配置,并且可能有助于测试一些东西。设置--homedir [folder]或环境变量$GNUPGHOME,导入密钥,执行任何操作,然后根据需要删除文件夹。
例如:
export GNUPGHOME=/tmp/gnupg # Or apply --homedir on each invocation
gpg --import key.asc
gpg --recipient 0xDEADBEEF --encrypt
rm -r $GNUPGHOME # Can be omitted
unset $GNUPGHOME
Run Code Online (Sandbox Code Playgroud)
GnuPG 对权限非常挑剔,您可能需要对$GNUPGHOME文件夹应用更严格的权限,然后才能执行所有操作。很可能是保留一些游乐场的选择$GNUPGHOME。
您可以制作一个小型 shell 脚本来复制 pubring.gpg 文件、导入密钥、加密您的文件,然后将原始 pubring.gpg 文件移回原位。这下次就会变成一句台词。
#!/bin/sh
cp -a ~/.gnupg/pubring.gpg ~/.gnupg/pubring.gpg-backup
gpg ... # Command to import
gpg ... # Command to encrypt message/file
mv ~/.gnupg/pubring.gpg-backup ~/.gnupg/pubring.gpg
Run Code Online (Sandbox Code Playgroud)
注意:脚本的参数是变量“$1”,“$2”,...
编辑:我知道我很久以前就回答过这个问题。我想提到上面的一个陷阱:恢复备份之前的中断会导致密钥库被更改。我建议改为复制到临时目录中:
#!/bin/sh
gpgtemp="$(mktemp -d gpgtemp.XXXXXXXXXX)"
cp -a ~/.gnupg "$gpgtemp"
gpg --homedir "$gpgtemp/.gnupg" ... # Command to import
gpg --homedir "$gpgtemp/.gnupg" ... # Command to encrypt message/file
rm "$gpgtemp" -rf
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6064 次 |
| 最近记录: |