Warum duplicity für inkrementelle Backups doch Passwörter braucht (Bug)

Duplicity bietet die Möglichkeit Backups mit einem GPG-Public-Key verschlüsselt abzulegen. Das Praktische daran ist, daß das Programm zum reinen Sichern keinen Zugriff auf den Private-Key benötigt. Neben der nur spärlich eingesetzten Email-Verschlüsselung endlich mal eine sinnvolle Anwendung für die GPG-Schlüssel. 🙂

Allerdings hatte ich schon länger das Problem, daß es für inkrementelle Backups trotzdem nach der Passphrase für den privaten Schlüssel gefragt hat (bzw. mit einem Stack-Trace abgestürzt ist). Auch in der aktuellen Version 0.6.06 ist das Problem noch vorhanden.

Interessanterweise trat das nicht bei allen Usern auf. Des Rätsels Lösung brachte eine neuerliche Suche in dem Bugtracker. Tatsächlich scheinen nur Installationen betroffen zu sein, bei denen LANG auf irgendetwas steht, was Umlaut-Codierung zulässt.

Der Grund dafür dürfte in GnuPGInterface liegen. Dort wird tatsächlich GPG als Prozess gestartet und STDIN und STDOUT zur Kommunikation damit benutzt. Wahrscheinlich wird sogar versucht den Output zu parsen. Kein Wunder, daß was schief geht, wenn ein anderes Locale Verwendung findet. Insgesamt doch eine recht wakelige Konstruktion…

Wie auch immer, als Workaround kann man vor dem duplicity aufruf LANG auf "" setzen. Dann klappt auch die Kommunikation mit gpg. Benutzt man aber "–use-agent", dann wird interessanterweise doch noch nach dem Passwort gefragt.