Ya tengo la clave privada con la que se ha cifrado el archivo, pero no estoy seguro de cómo puedo especificarla.
Entiendo esto como "Tengo un archivo que contiene la clave privada, pero no sé cómo decirle a GnuPG que la use".
GnuPG requiere que las claves (tanto públicas como privadas) se almacenen en el conjunto de claves de GnuPG. Esto es tan fácil como
gpg --import [keyfile]
Luego, debería poder descifrar el archivo exactamente como ya lo intentó.
bash-4.2$ gpg --import b_secret.key
gpg: key 23E7859B: already in secret keyring
gpg: Total number processed: 1
gpg: secret keys read: 1
gpg: secret keys unchanged: 1
bash-4.2$ gpg --decrypt b_txt.asc
gpg: key 23E7859B: secret key without public key - skipped
gpg: encrypted with RSA key, ID 04702E37
gpg: decryption failed: secret key not available
No necesita declarar expresamente la clave secreta en el comando gpg decrypt. Si el par de claves, tanto público Y Claves privadas:como dice Jens, están presentes en el conjunto de claves del host donde está descifrando, GPG determinará automáticamente la clave secreta requerida para el descifrado y presentará un desafío de contraseña.
SIN EMBARGO si desea probar todas las claves (no almacenadas en caché) (tal vez esté probando un archivo cifrado con varias claves ), usando el interruptor --try-all-secrets
recorrerá todas las claves secretas de su llavero probándolas una por una. es decir:
gpg -d --try-all-secrets test-gpg.txt.asc
HTH- Terrence