2 votos

GPG2 pide contraseña incluso con--contraseña especificada

Estoy intentando crear un script de un gpg descifrado, y, como tales, deben proporcionar la contraseña en la línea de comandos. Según el hombre de la página, hay tres maneras de hacer esto: leer de un fichero, usando --passphrase-file, leer desde la entrada estándar (u otro descriptor de archivo) usando --passphrase-fd 0, o incluir en la línea de comandos, utilizando sólo --passphrase. Todo lo anterior también requieren --batch , lo cual hice.

Mi más reciente de la línea de comandos intento es:

echo "<password>" | gpg2 --no-tty --batch --passphrase-fd 0 -d -o /<path_to_destination>/$FILE_NAME $FILE

que todavía aparece un cuadro de diálogo solicitando la contraseña. Lo que me estoy perdiendo aquí? Para referencia, si se hace una diferencia, mi contraseña no incluyen algunos caracteres especiales como &, pero no parece quejarse. También, gpg versión 2.1.9:

# gpg2 --version
gpg (GnuPG) 2.1.9
libgcrypt 1.7.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

EDIT: a Diferencia de Cómo la fuerza de GPG para el uso de la consola en modo pinentry para solicitar contraseñas?, que simplemente está tratando de conseguir un texto basado en la introducción de una contraseña para su uso en una sesión de SSH, estoy tratando de conseguir un completamente no-método interactivo de uso de GPG para el uso de secuencias de comandos.

0voto

ibrewster Puntos 116

Encontré la solución aquí: https://wiki.archlinux.org/index.php/GnuPG#Unattended_passphrase

En Resumen, necesitaba primero activar el modo "loopback" pinentry gpg-agent añadiendo la siguiente línea a la ~/.gnupg/gpg-agent.conf archivo:

allow-loopback-pinentry

Luego agregar el --pinentry-mode loopback argumento a mi gpg2 llamar

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: