Ich benötige ein Bash-Skript, um eine verschlüsselte Datei zu erstellen, da die bezogene Datei vertrauliche Informationen enthält.
Ich möchte, dass das Skript zur Eingabe der GPG-Passphrase auffordert und dann ausgeführt wird und die verschlüsselte Datei bezieht. Ich kann allerdings nicht herausfinden, wie das geht. Es muss eine Benutzereingabe für die Passphrase geben, da ich keinen Schlüssel mit der verschlüsselten Datei auf dem Server speichern möchte.
Wenn ich mir verschiedene Methoden anschaue, möchte ich die Datei nicht entschlüsseln, die unverschlüsselte Datei als Quelle verwenden und sie anschließend löschen. Ich möchte die Wahrscheinlichkeit verringern, dass eine unverschlüsselte Datei zurückbleibt, wenn im Skript ein Fehler auftritt.
Gibt es eine Möglichkeit, die GPG-Ausgabe einer Datei so abzurufen? Möglicherweise STDOUT sammeln und analysieren (wenn GPG den Inhalt überhaupt auf diese Weise ausgeben kann).
Wenn es eine andere Möglichkeit gibt, eine Datei zu verschlüsseln, die Shell-Skripte verwenden können, ist mir dies nicht bekannt, aber ich bin offen für andere Möglichkeiten.
quelle
<(command)
.. <(aescrypt -d -o - file.aes)
Wenn Sie
gpg-agent
richtig eingerichtet sindpinentry-tty
und eine andere Version verwenden, die stdin / stdout nicht verschmutzt, sollten Sie in der Lage sein, Folgendes zu tun:Dies verwendet die Prozessersetzung, um das Ergebnis
source
so zu füttern, als wäre es eine Datei. Die spezifischen Dateidaten verschwinden, sobald die Shell damit fertig ist. Danach müssen Sie jedoch noch vorsichtig mit den vertraulichen Daten im Speicher der Shell sein.quelle
Da die vernünftigste Antwort bereits gegeben wurde, ist hier eine verrückte - verwenden Sie dieses Dateisystem:
https://github.com/jseppanen/gpgfs
Auf diese Weise bemerkt Ihr Programm nicht, dass es mit einer Pipe spricht.
quelle