web-dev-qa-db-ja.com

gpg公開鍵を使用して、鍵をインポートせずにメッセージを暗号化することは可能ですか?

誰かのgpgキーを使用してメッセージを送信したい場合がありますが、キーを再度使用する必要はありません。

このインスタンスでキーをインポートする必要はないようです。

検索しましたが、これが可能であることを示唆するものは何も見つかりません。毎回--delete-keysを実行しなければならないのは少し面倒です。

4
Patrick Keery

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

注:スクリプトのパラメーターは変数 "$ 1"、 "$ 2"、...

3
Dan Armstrong

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

一時的なGnuPGホームディレクトリ

これにより、すべての構成がリセットされ、いくつかのものをテストするのに役立つ場合があります。 --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

GnuPGはパーミッションに関して非常に慎重です。すべての操作を実行する前に、$GNUPGHOMEフォルダーにさらに厳しいパーミッションを適用する必要がある場合があります。遊び場を維持するためのオプションかもしれません-$GNUPGHOME

7
Jens Erat