Hallo, kann mir jemand vielleicht einen Hinweis geben, wo man Beispiele für die Benutzung von GPG in (bash-)Skripten / im batch mode findet? Nachdem ich schon den halben Tag mit Google suche und Mailinglistenarchive durchstöbere, habe ich nicht viel erhellendes für mein Problem gefunden. Gibt es überhaupt Literatur, wie man GPG in anderen Programmen/Skripten verwendet? Zur Motivation: Mit tom@tomcat:~> gpg --decrypt ~/_PWDSAFE_ | less wollte die mit gpg verschlüsselte Datei _PWDSAFE_ in less anzeigen. Daß dieses so nicht gut funktioniert habe ich schon eingesehen, denn gpg verlangt im interaktiven Modus die Eingabe einer Passphrase. Diese Aufforderung wird ja schon nach less weitergegeben, wo ich zwar eine Passphrase eingeben kann, was dann die Datei im Klartext anzeigt. Aber less funktioniert dabei nicht wie normal. Also dachte ich daran gpg in einem bash-Skript namens 'showsecrets' im batch-Modus zu verwenden: #! /bin/bash # ================================================================== # showsecrets - Shows a private password safe # ================================================================== PASSWD_SAFE='~/_PWDSAFE_' # GPG-Optionen: # --quiet so wenig Ausgaben wie möglich # --batch keine Abfragen machen; keine interaktiven Kommandos # --no-tty kein Terminal für Ausgaben benutzen # --passphrase-fd 0 Passphrase von stdin lesen GPG_OPTS="--quiet --batch --no-tty --passphrase-fd 0" gpg $GPG_OPTS --decrypt $PASSWD_SAFE | less Ich hatte die Erwartung, daß gpg in diesem Modus zuerst alles erledigt und dann die bash die Ausgabe des Klartexts an less weiterreicht. Leider scheint gpg schon alles auf stdout auszugeben bevor überhaupt die bash und less wieder zum Zug kommen. Überhaupt scheint less gar nicht mehr aufgerufen zu werden. In dem Zusammenhang erscheint mir auch der letzte Satz (beginnend mit "This command differs") der folgenden Passage aus der GPG Manpage etwas rätselhaft: --decrypt [file] Decrypt file (or stdin if no file is specified) and write it to stdout (or the file specified with --output). If the decrypted file is signed, the sig nature is also verified. This command differs from the default operation, as it never writes to the filename which is included in the file and it rejects files which don't begin with an encrypted message. Nun, ich will ja, daß gpg auf stdout schreibt, damit ich es mit less anzeigen kann. Außerdem will ich nicht, daß eine Datei (nicht mal eine temporöre) auf der Platte erzeugt wird. Wenn ich probehalber doch die Option --output mit einer Klartext-Ausgabedatei verwende, dann funktioniert das auch nicht. GPG scheint hier so manche Option zu ignorieren. Zu diesem Verhalten finde ich auch keinerlei Hinweise, z.B. in den Archiven GPG-Mailinglisten. Würde mich sehr freuen, wenn mir jemnad weiterhelfen könnte. Gruß, Tom