2 votos

Ejecución de un gpg secuencia de comandos de shell para descifrar un archivo a través de Automator

Regularmente me falta descifrar un gpg-archivo cifrado (siempre el mismo) para ver simplemente en TextEdit. Tengo una muy simple script de shell para que. Se parece a esto:

#!/bin/sh
outfile=`mktemp -t $$`  # Temporary file name
gpg --output $outfile --decrypt /path/to/file.gpg
open -a TextEdit $outfile
sleep 1
rm $outfile

Cuando se ejecuta desde la terminal, todo va bien. GPG pide mi contraseña en una ventana pop-up, TextEdit, la temp se elimina el archivo y todo es grande. No así en Automator. Yo seleccione "Ejecutar Script de Shell", ignorar la secuencia de comandos de shell de entrada, pegar el contenido de la secuencia de comandos (excepto para la primera línea). TextEdit aparece con un archivo en blanco y GPG nunca se pregunta por la contraseña. He intentado utilizar la ruta de acceso completa a GPG pero que no lo hicieron. Sé prácticamente nada de acciones de Automator por lo que el problema seguramente viene de mí.

Cualquier ayuda apreciada!

5voto

Ryan Spears Puntos 1524

El Automator "Ejecutar Script de Shell" acción se ejecuta la secuencia de comandos en un non-interactive shell (para una explicación de la diferencia entre interactivo y no interactivo conchas, consulte la sección pertinente de la Avanzada de Bash Scripting Guide) – no es, simplemente hablado, no hay terminal para obtener la entrada del usuario. Supongo que la gpg utilidad se reconoce y se salta el mensaje de contraseña (otra cosa que el script se bloquea).

Usted debe ser capaz de canalizar la frase de contraseña para GPG dentro de una acción mediante la --passphrase-fd 0 opción (ver gpg el hombre de la página) , sin embargo, es decir,

echo "passphrase" |  gpg  --passphrase-fd 0 --output $outfile --decrypt /path/to/file.gpg

Usted puede almacenar su contraseña en el OS X Llavero y recuperar a partir de allí. Aunque es posible a través de un script de shell (el TextMate blog tiene detalles sobre cómo lograr que – asegúrese de leer los comentarios), hay tantos errores que me gustaría recomendar el uso de un poco de AppleScript y Daniel Jalkut excelente Utilizable Llavero de secuencias de comandos de la aplicación. Una vez instalado, el siguiente bit de AppleScript va a recuperar su contraseña (suponiendo que el nombre de la cuenta es "GPG"):

tell application "Usable Keychain Scripting" to get password of first generic item of current keychain whose account is "GPG"

Ya sea envolver en un osascript shell de comandos, es decir,

passphrase=$(osascript -e '<command above>')

o, como lo son el uso de Automator, agregar un AppleScript acción, recuperar la contraseña de su interior y se pasa a la secuencia de comandos de shell.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X