GnuPG non supporta la crittografia di un destinatario specificato da un file chiave. La chiave deve essere importata in anticipo e il destinatario definito con il suo indirizzo di posta o l'ID della chiave.
Consiglierei di usare un approccio più pulito come previsto da GnuPG e hard-code sia l'impronta digitale della chiave, sia un ID utente dato da quella chiave e importarlo come al solito.
Se davvero non vuoi importare la chiave, potresti seguire come soluzione alternativa (che in realtà importa la chiave, ma in una directory home GnuPG temporanea):
-
Importa la chiave in una cartella temporanea, ad esempio utilizzando
gpg --homedir /tmp/gnupg --import my.pub
-
Determina l'ID della chiave della chiave memorizzata nel file:
KEYID='gpg --list-public-keys --batch --with-colons --homedir /tmp/gnupg | head -n1 | cut -d: -f5'
-
Encrypt un messaggio al destinatario
gpg --homedir /tmp/gnupg --recipient ${KEYID} --encrypt
-
Pulisci la directory home di GnuPG temporanea
rm -f /tmp/gnupg
Ovviamente potresti salvarlo come script per renderlo più comodo.