GnuPG-Homoverzeichnis unter Linux migrieren

Überblick

In Linux-Umgebungen erfordert die Umstrukturierung von Benutzerkonten oder die Anpassung von Speicherpfaden für kryptografische Zertifikate häufig einen sauberen Umzug des GnuPG-Arbeitsverzeichnisses. Für genau dieses Szenario stellt das System das Hilfsprogramm addgnupghome bereit. In diesem Leitfaden betrachten wir die Funktionsweise des Dienstprogramms und demonstrieren anhand eines praxisnahen Workflows, wie Schlüsseldatenbestände gefahrlos migriert, Berechtigungen gehärtet und die Integrität der Schlüsselringe validiert werden.

1. GnuPG-Pakete bereitstellen und Verfügbarkeit von addgnupghome prüfen

Bevor die Migration durchgeführt werden kann, stellen wir sicher, dass die grundlegenden Kryptowerkzeuge auf dem System vorhanden sind, indem wir die Pakete gnupg und gpgv einrichten.

Installation der Pakete gnupg und gpgv via apt-get

Mittels which überprüfen wir anschließend, ob das Administrationswerkzeug addgnupghome unter dem Standardpfad /usr/sbin/addgnupghome ausführbar hinterlegt ist.
Das Skript addgnupghome dient dazu, eine konforme GnuPG-Verzeichnisstruktur (~/.gnupg) für ein bestimmtes Benutzerkonto anzulegen oder bestehende Schlüsseldatenbestände in ein neues Zielverzeichnis zu überführen.
⚙️ [Zentraler Parameter]

account : Bestimmt den Namen des Benutzerkontos bzw. das Verzeichnis, für das die GnuPG-Umgebung eingerichtet oder migriert werden soll.

Pfadüberprüfung für addgnupghome mit which

Ein Aufruf der Dokumentation gibt Aufschluss über Syntax und Verhalten des Befehls.
Hinweis: Auf schlanken bzw. minimierten Ubuntu-Systemen sind Handbuchseiten standardmäßig oft nicht mitinstalliert, weshalb das Terminal gegebenenfalls auf fehlende Manpages hinweist.

Befehlshilfe und Handbuchseite zu addgnupghome aufrufen

2. Legacy-GPG-Struktur zu Testzwecken aufsetzen und Schlüssel erzeugen

Um den Migrationsprozess gefahrlos zu simulieren, erstellen wir zunächst ein temporäres Ausgangsverzeichnis und schirmen dieses mit restriktiven Dateirechten (700) ab.

Erstellung des Quellverzeichnisses legacy-gnupg mit Zugriffsrechten 700

Für den anstehenden Testlauf erzeugen wir ein frisches GPG-Schlüsselpaar über gpg --quick-generate-key.
Unter Verwendung des Parameters --homedir /tmp/legacy-gnupg initialisieren wir einen Standard-Schlüssel für einen Testbenutzer ohne Passphrase und mit einer Gültigkeitsspanne von genau einem Jahr.

Automatische Erstellung eines Test-Schlüsselpaars mit gpg

Mit ls -la inspizieren wir das Quellverzeichnis, um sicherzustellen, dass die Schlüsselbund-Datenbank (pubring.kbx), die Vertrauensdatenbank (trustdb.gpg) sowie die internen Ordner für geheime Schlüssel ordnungsgemäß initialisiert wurden.

Inhaltsprüfung des Quellordners legacy-gnupg

3. Schlüsselring-Migration mit addgnupghome durchführen

Als Nächstes bereiten wir den Zielpfad vor, in welchen die GPG-Konfiguration transferiert werden soll, und führen dazu mkdir -p /tmp/new-gnupg aus.

Anlegen des Zielverzeichnisses new-gnupg

Nun führen wir den Transfer durch: Der Aufruf von addgnupghome überträgt die bestehenden Strukturen und kryptografischen Daten aus /tmp/legacy-gnupg in den neuen Speicherort /tmp/new-gnupg.
Der Vorgang schließt ohne Fehlermeldungen ab und transformiert die Schlüsselablage in das Zielverzeichnis.

Ausführung von addgnupghome zur Migration der GPG-Daten

Um das Resultat zu begutachten, listen wir die Dateien im neuen Verzeichnis mit ls -la /tmp/new-gnupg auf.
Die Ausgabe dokumentiert, dass alle erforderlichen Schlüsselbund-Bestandteile erfolgreich angelegt und übertragen wurden.

Überprüfung der Verzeichnisstruktur im neuen GPG-Home

4. Validierung der Schlüssel und Best Practices für Zugriffsberechtigungen

Wir verifizieren nun, ob GnuPG die migrierten Schlüssel am neuen Zielort problemlos adressieren kann, indem wir gpg --homedir /tmp/new-gnupg --list-keys ausführen.
Damit stellen wir sicher, dass alle öffentlichen Schlüssel und Benutzeridentitäten vollständig erkannt werden.

Auflistung der GPG-Schlüssel im migrierten Verzeichnis

Zum Schutz sensitiver Kryptomaterialien gilt es, strikte Dateirechte zu erzwingen: Für das Basisverzeichnis vergeben wir Berechtigung 700, während alle enthaltenen Dateien auf 600 beschränkt werden.
Diese Härtung sperrt andere Systembenutzer konsequent aus und erfüllt die strengen Sicherheitsanforderungen von GnuPG.

Absicherung der Zugriffsrechte für Verzeichnis und Dateien

Ein abschließender Befehl ls -ld bestätigt, dass das neue Arbeitsverzeichnis mit den exakten Zugriffsrechten drwx------ (700) konfiguriert ist.
Damit ist gewährleistet, dass ausschließlich der Eigentümer Zugriff auf die sicherheitsrelevanten Schlüsseldateien besitzt.

Kontrolle der Verzeichnisberechtigungen mit ls -ld

Nach Abschluss der Demonstration räumen wir die temporär erstellten Verzeichnisse mittels rm -rf /tmp/legacy-gnupg /tmp/new-gnupg wieder auf.
Das System befindet sich damit wieder in seinem ursprünglichen Zustand vor dem Testlauf.

Löschen der temporären Testumgebungen

Das Administrationswerkzeug addgnupghome bietet einen verlässlichen und sauberen Weg, GPG-Home-Verzeichnisse unter Linux ohne manuelle Kopierfehler oder fehlerhafte Dateiattribute zu migrieren.
Mit der hier gezeigten Vorgehensweise gelingt Ihnen der Wechsel auf neue Verzeichnispfade reibungslos und unter Einhaltung strenger Sicherheitsstandards.