Gibt es eine Möglichkeit, einen öffentlichen GPG-Schlüssel in ein Skript einzubetten, ohne ihn dem Schlüsselbund hinzuzufügen?

9

Ich habe ein Skript, das im Grunde Folgendes tun muss:

#!/bin/bash 

GPG_PUBLIC_KEY=<<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.12 (GNU/Linux)
...
-----END PGP PUBLIC KEY BLOCK-----
EOF

gpg --encrypt --with-public-key "$GPG_PUBLIC_KEY" myfile.txt

Gibt es eine Möglichkeit, dies zu tun, ohne zuerst den GPG-Schlüssel in den Schlüsselring zu importieren?

Naftuli Kay
quelle

Antworten:

6

Wenn Sie den Schlüsselring des Benutzers überhaupt nicht verwenden möchten, zeigen Sie GPG auf einen temporären Schlüsselring.

tmp=
trap 'rm -rf "$tmp"' EXIT INT TERM HUP
tmp=$(mktemp -d)
export GNUPGHOME="$tmp"
gpg --import <<EOF

EOF
gpg -e -r  myfile.txt

Wenn Sie auch den Schlüsselbund des Benutzers verwenden möchten, legen Sie ihn GNUPGHOMEnur während des Importbefehls fest und übergeben Sie ihn --keyring "$tmp/pubring.gpg"an den zweiten gpgBefehl.

Gilles 'SO - hör auf böse zu sein'
quelle