❌

Lese-Ansicht

GPG-verschlüsselte Dateien im Emacs

Auf meinen Rechnern verschlüssele ich Dateien mit Passwörtern oder anderen vertraulichen Daten, vor allem dann, wenn ich sie zwischen mehreren Rechnern teilen möchte oder wenn diese in Backups auf externen Datenträgern landen. Den einfachsten Weg dazu bietet das Kommando gpg -c file.txt. Es fragt (zur Sicherheit gleich zweimal) nach einem Passwort, verschlüsselt die Datei file.txt symmetrisch und macht daraus file.txt.gpg. gpg -d file.txt.gpg entschlüsselt die Datei wieder. (Symmetrisch bedeutet, dass Sie kein Schlüsselpaar brauchen. gpg verwendet zum Ver- und Entschlüsseln dasselbe Passwort, das oft passphrase genannt wird. Verwenden Sie eine ausreichend lange Zeichenkette, die Sie sich gut merken können!)

Kürzlich habe ich entdeckt, dass mein Lieblingseditor Emacs solche Dateien fast transparent beim Laden ent- und beim Speichern wieder verschlüsseln kann. Das Feature ist keineswegs neu, ich bin einfach noch nie darüber gestolpert. Es gibt keine temporäre Klartextdateien, die versehentlich liegen bleibt.

Emacs bringt mit EasyPG (epa-file) alles Nötige schon mit. Einzig gpg wird vorausgesetzt. Unter Linux ist dieses Kommando meist schon installiert, unter macOS führt brew install gnupg zum Ziel.

Mit Strg+X Strg+F öffnen Sie eine Datei mit der Endung .gpg. Emacs fragt nach dem Passwort und zeigt die Datei dann unverschlüsselt an. Wenn Sie eine Datei wie geheim.txt.gpg speichern, fragt Emacs nach dem gewünschten Verschlüsselungspasswort.

Mehr Komfort

Ohne Konfiguration fragt Emacs bei jedem Speichervorgang nach dem Passwort, das zur Sicherheit dann doppelt eingegeben werde muss. Mit einer Zusatzzeile in .emacs merkt sich Emacs das Passwort pro Datei im Speicher. (Das ist natürlich ein gewisses Sicherheitsrisiko. Solange der Editor läuft, befindet sich das Passwort im Arbeitsspeicher. Aber Sie können nun beliebig oft speichern, es wird immer automatisch das einmal beim Laden oder beim ersten Speichern festgelegte Passwort verwendet.)

;; in .emacs
;; GPG-Passwort pro Datei im Speicher halten
(setq epa-file-cache-passphrase-for-symmetric-encryption t)

Standardmäßig versucht gpg die Passworteingabe an ein externes pinentry-Programm zu delegieren. Sie können ein solches Programm installieren (z.B. brew install pinentry-mac). Viel besser ist es aber, zur Passworteingabe direkt den Minibuffer von Emacs zu verwenden:

;; direkte Passworteingabe ohne externen pinentry-Dialog
(setq epg-pinentry-mode 'loopback)

Quellen/Links

  •  
❌