次のようなことができますか?
gpg --public-key my.pub -e file.txt
できれば、私がそれをしてはいけない理由はありますか?
P/s:私のマシンには一度に1つの公開鍵しかないため、受信者について知る必要はないと思います。
しかし、その鍵はすぐに変更されます(古い暗号化ファイルをすべて削除できるので、それらを保持する必要はありません)。
GnuPGは、鍵ファイルで指定された受信者への暗号化をサポートしていません。事前に鍵をインポートし、受信者をメールアドレスまたは鍵IDで定義する必要があります。
GnuPGが期待するよりクリーンなアプローチを使用し、キーのフィンガープリント、またはそのキーによって指定されたユーザーIDをハードコードして、通常どおりインポートすることをお勧めします。
本当にキーをインポートしたくない場合は、回避策として以下を実行できます(実際にはキーがインポートされますが、一時的なGnuPGホームディレクトリにインポートされます)。
たとえば、次のコマンドを使用して、一時フォルダーにキーをインポートします。
gpg --homedir /tmp/gnupg --import my.pub
ファイルに保存されているキーのキーIDを確認します。
KEYID=`gpg --list-public-keys --batch --with-colons --homedir /tmp/gnupg | head -n1 | cut -d: -f5`
受信者へのメッセージを暗号化する
gpg --homedir /tmp/gnupg --recipient ${KEYID} --encrypt
一時的なGnuPGホームディレクトリをクリーンアップする
rm -f /tmp/gnupg
もちろん、これをスクリプトとして保存して、より便利に使用できます。
GnuPG 2.1.14以降、キーファイルから暗号化できる新しいオプションがあります:--recipient-file FILENAME
。バイナリまたはASCIIの装甲ファイルから機能します。
リリースノート または devメーリングリスト を確認してください。
私の知る限り、受信者の公開鍵ID、鍵の有効期限、名前、および電子メールアドレスはGPGに埋め込まれていますASCII Armorファイル( GnuPG Manual )
pub 1024D/BB7576AC 1999-06-04 Alice (Judge) <[email protected]>
したがって、pub key file/Key ID/Name/Emailを使用して、どの公開鍵を使用するかを特定する必要がありますすべて同等です。
しかし、今のところLinuxマシンにアクセスできないので確認できません。
質問を確認したところ、すでに持っている独自の公開鍵を使用して暗号化することに興味があるようです(例では(my.pub )。
確かに、それは可能であるだけでなく、望ましいを提供するのに役立つため、非インタラクティブな自動化暗号化。 [〜#〜] your [〜#〜]公開鍵の場合、それを暗黙的に信頼し、心配することなく次のことを実行できます。
gpg --batch --yes --trust-model always -r $GPGPUBKEYRECIPIENTEMAIL -e ./file.txt
暗号化をスクリプト化できるように、回答を必要とするインタラクティブなプロンプトはありません。 [〜#〜]ノート[〜#〜]:私は自分の[〜#〜] public [〜#〜]キーを公開サーバーにアップロードします[〜#〜] private [〜#〜]キーを離して、データを保護したい。
ただし、独自のキーで暗号化している場合[〜#〜] [〜#〜]は、--trust-model always
スイッチは危険です。また、暗号化を解除するときに、もちろん自動化しない限り、パスワードの入力を求められることにも注意してください。 HTH bud- Terrence Houlahan