GnuPG no admite el cifrado de un destinatario especificado por un archivo de clave. La clave debe importarse por adelantado y el destinatario debe definirse con su dirección de correo o ID de clave.
Recomiendo usar un enfoque más limpio como lo espera GnuPG y codificar el código de la huella dactilar de la clave, o una ID de usuario proporcionada por esa clave e importarla como de costumbre.
Si realmente no desea importar la clave, puede hacer lo siguiente como solución alternativa (que en realidad importa la clave, pero a un directorio principal temporal de GnuPG):
-
Importe la clave a una carpeta temporal, por ejemplo, utilizando
gpg --homedir /tmp/gnupg --import my.pub
-
Determine el ID de clave de la clave almacenada en el archivo:
KEYID='gpg --batch --with-colons /tmp/a4ff2279.pgp | head -n1 | cut -d: -f5'
-
Cifrar un mensaje al destinatario
gpg --recipient ${KEYID} --encrypt
-
Limpiar el directorio de inicio GnuPG temporal
rm -f /tmp/gnupg
Por supuesto, puede guardar esto como una secuencia de comandos para que su uso sea más conveniente.