J'ai besoin d'un script bash pour source un fichier qui est crypté, car le fichier d'origine contient des informations sensibles.
Je voudrais que le script demande la phrase de passe GPG puis s'exécute, en se procurant le fichier crypté. Je ne peux pas comprendre comment faire cela cependant. Il doit y avoir une entrée utilisateur pour la phrase secrète, car je ne veux pas stocker de clé sur le serveur avec le fichier crypté.
En examinant différentes méthodes, je ne veux pas décrypter le fichier, source le fichier non crypté, puis supprimez-le après. Je voudrais réduire le risque de laisser un fichier non chiffré derrière, si quelque chose s'est mal passé dans le script.
Existe-t-il un moyen d'obtenir la sortie GPG d'un fichier pour le source de cette façon? Peut-être en collectant STDOUT et en l'analysant (si GPG peut même sortir le contenu de cette façon).
De plus, s'il existe un autre moyen de crypter un fichier que les scripts shell peuvent utiliser, je n'en suis pas conscient, mais ouvert à d'autres possibilités.
la source
<(command)
.. <(aescrypt -d -o - file.aes)
Si vous avez
gpg-agent
configuré correctement, en utilisantpinentry-tty
ou une autre version qui ne pollue pas stdin / stdout, alors vous devriez pouvoir faire quelque chose comme:Cela utilise la substitution de processus pour alimenter le résultat
source
comme s'il s'agissait d'un fichier. Les données de fichier spécifiques disparaîtront dès que le shell en aura fini, bien que vous deviez toujours faire attention aux données sensibles dans la mémoire du shell après cela.la source
Étant donné que la réponse la plus saine a déjà été donnée, voici une réponse insensée - utilisez ce système de fichiers:
https://github.com/jseppanen/gpgfs
De cette façon, votre programme ne remarquera pas qu'il parle à un tuyau.
la source