Necesito una secuencia de comandos bash para obtener un archivo cifrado, ya que el archivo que se obtiene contiene información confidencial.
Me gustaría que el script solicite la frase de contraseña GPG y luego se ejecute, obteniendo el archivo cifrado. Sin embargo, no puedo entender cómo hacer esto. Debe haber una entrada del usuario para la frase de contraseña, ya que no quiero almacenar una clave en el servidor con el archivo cifrado.
Buscando algunos métodos diferentes, no quiero descifrar el archivo, obtener el archivo no cifrado y luego eliminarlo. Me gustaría reducir la posibilidad de dejar un archivo no encriptado si algo sale mal en el script.
¿Hay alguna manera de obtener la salida GPG de un archivo para obtenerlo de esta manera? Posiblemente recopilar STDOUT y analizarlo (si GPG puede incluso generar el contenido de esta manera).
Además, si hay otra forma de cifrar un archivo que los scripts de shell pueden usar, no lo sé, pero estoy abierto a otras posibilidades.
fuente
<(command)
.. <(aescrypt -d -o - file.aes)
Si ha
gpg-agent
configurado correctamente, utilizandopinentry-tty
o alguna otra versión que no contamine stdin / stdout, entonces debería poder hacer algo como:Esto utiliza la sustitución de procesos para alimentar el resultado
source
como si fuera un archivo. Los datos específicos del archivo desaparecerán tan pronto como el shell termine con él, aunque aún debe tener cuidado con los datos sensibles en la memoria del shell después de eso.fuente
Dado que la respuesta más sensata ya se ha dado, aquí hay una loca: use este sistema de archivos:
https://github.com/jseppanen/gpgfs
De esta manera, su programa no notará que está hablando con una tubería.
fuente