Neue GnuPG-Repositorys für Debian, Ubuntu und Devuan: Version 2.5.8 und 2.4.8 verfügbar

GnuPG-Pakete für Debian, Ubuntu und Devuan

Wer GnuPG produktiv oder für Tests einsetzt, kennt das Problem: Viele Distributionen liefern ältere oder stark angepasste Versionen aus – inklusive Änderungen, die mit dem ursprünglichen Quelltext wenig zu tun haben. Deshalb gibt es jetzt in unseren eigenen Repositorys stabile Releases und Testversionen – ohne Distributions-spezifische Patches, dafür mit allen neuen Funktionen und genau dem Verhalten, das wir für Upstream vorgesehen haben.

Zur Auswahl stehen zwei Versionen:

  • 2.4.8: für den produktiven Einsatz empfohlen (stable)
  • 2.5.8: die Entwicklerversion mit neuen Features wie Kyber-Unterstützung

Mit dabei: alle Kernpakete von gpg über gpg-agent und scdaemon bis zu libgcrypt, libgpgme und gpg-wks-client. In diesem Artikel zeigen wir, wie Sie die Repositorys einbinden, den Signaturschlüssel prüfen und GnuPG auf Ihrer Distribution sauber installieren.

Paketquellen für GnuPG 2.4.8 und 2.5.8 im Überblick

Die folgenden Paketquellen enthalten entweder die aktuelle Stable-Version (derzeit 2.4.8) oder die neuesten Entwicklungsstände (aktuell 2.5.8). Welche Pakete in welcher Version konkret angeboten werden, sehen Sie direkt im jeweiligen Repository-Verzeichnis.

Die Paketquellen unterscheiden sich nach Distribution und Release-Zweig:

Distribution Zweig Version Link
Devuan Entwicklung 2.5.8 daedalus-devel
Devuan Release 2.4.8 daedalus
Debian Entwicklung 2.5.8 bookworm-devel
Debian Entwicklung 2.5.8 trixie-devel
Debian Release 2.4.8 bookworm
Debian Release 2.4.8 trixie
Ubuntu Entwicklung 2.5.8 jammy-devel
Ubuntu Entwicklung 2.5.8 noble-devel
Ubuntu Entwicklung 2.5.8 plucky-devel
Ubuntu Release 2.4.8 jammy
Ubuntu Release 2.4.8 noble
Ubuntu Release 2.4.8 plucky

GnuPG-Signaturschlüssel importieren und abspeichern

Im ersten Schritt installieren Sie den Signaturschlüssel des GnuPG-Repositorys. Am einfachsten geht das mit einem bereits installierten GnuPG – zum Beispiel mit folgendem Befehl:

sudo gpg \
  --no-default-keyring \
  --keyring /usr/share/keyrings/gnupg-keyring.gpg \
  --fetch-keys https://repos.gnupg.org/deb/gnupg/<distro>/gnupg-signing-key.gpg

Ersetzen Sie <distro> im Befehl durch den Namen der Distribution, also z. B. bookworm (Version 2.4.8 für Debian 12), trixie-devel (Version 2.5.8 für Debian 13), daedalus (2.4.8 für Devuan), jammy, noble oder plucky (jeweils 2.4.8 für Ubuntu).

Nach dem Ausführen des Befehls sollte eine Ausgabe wie die folgende erscheinen:

gpg: Die "Keybox" `/usr/share/keyrings/gnupg-keyring.gpg' wurde erstellt
gpg: fordere Schlüssel von https://repos.gnupg.org/deb/gnupg/<distro>/gnupg-signing-key.gpg an
gpg: /root/.gnupg/trustdb.gpg: trust-db erzeugt
gpg: Schlüssel 33FD1BCF5E579D83: Öffentlicher Schlüssel "Meik Michalke <meik.michalke@gnupg.com>" importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg:                              importiert: 1

Alternativ können Sie den Signaturschlüssel auch mit einem einfachen curl- oder wget-Aufruf herunterladen.

Download mit wget:

wget -O- https://repos.gnupg.org/deb/gnupg/<distro>/gnupg-signing-key.gpg | \
  sudo gpg --dearmor --yes --output /usr/share/keyrings/gnupg-keyring.gpg

Download mit curl:

curl https://repos.gnupg.org/deb/gnupg/<distro>/gnupg-signing-key.gpg | \
  sudo gpg --dearmor --yes --output /usr/share/keyrings/gnupg-keyring.gpg

Berechtigungen prüfen: Lesezugriff auf den GnuPG-Schlüssel aktivieren

Nach dem Herunterladen des Schlüssels sollten Sie überprüfen, ob die Datei für alle Benutzer lesbar ist. Denn nur dann kann auch der Paketmanager später auf den Schlüssel zugreifen. Die Ausgabe sollte etwa so aussehen:

$ ls -la /usr/share/keyrings/gnupg-keyring.gpg
-rw-r--r-- 1 root root 1100 24. Jun 13:33 /usr/share/keyrings/gnupg-keyring.gpg

Das bedeutet: Die Datei gehört dem Benutzer root und hat die Zugriffsrechte rw-r--r--, also „lesen und schreiben“ für den Besitzer und „nur lesen“ für alle anderen. Genau das ist in diesem Fall gewünscht.

Fehlen diese Lese-Rechte für andere Benutzer (z. B. steht dort nur rw-------), kann apt die Datei später nicht nutzen, und das Hinzufügen der Paketquelle wird scheitern. In diesem Fall setzen Sie die Berechtigung mit folgendem Befehl korrekt:

sudo chmod a+r /usr/share/keyrings/gnupg-keyring.gpg

Damit erlauben Sie allen Nutzer:innen auf dem System, die Datei zu lesen – ein notwendiger Schritt für den Zugriff durch das Paketmanagement.

GnuPG-Repository korrekt als Paketquelle einbinden

Im nächsten Schritt binden Sie das neue GnuPG-Repository in die Paketverwaltung Ihrer Distribution ein. Dazu legen Sie eine zusätzliche Konfigurationsdatei an, die den Speicherort des Repositorys sowie die zugehörige Signaturdatei definiert. Geben Sie diesen Befehl ein:

echo "Types: deb
URIs: https://repos.gnupg.org/deb/gnupg/<distro>/
Suites: <distro>
Components: main
Signed-By: /usr/share/keyrings/gnupg-keyring.gpg" |
sudo tee /etc/apt/sources.list.d/gnupg.sources

Ersetzen Sie <distro> durch den Codenamen Ihrer Distribution, z. B. bookworm (Version 2.4.8 für Debian 12), trixie-devel (Version 2.5.8 für Debian 13), daedalus (2.4.8 für Devuan), jammy, noble oder plucky (jeweils 2.4.8 für Ubuntu).

Was passiert hier genau?

  • Types: deb: Legt fest, dass es sich um ein binäres Debian-Repository handelt (also .deb-Pakete, keine Quellpakete).
  • URIs: https://repos.gnupg.org/deb/gnupg/<distro>/: Das ist die Adresse des GnuPG-Repositorys.
  • Suites: <distro>: Gibt die zugehörige Distribution (Codename) an.
  • Components: main: Das Repository enthält nur einen Bereich namens main, wie bei vielen Upstream-Repos üblich.
  • Signed-By: /usr/share/keyrings/gnupg-keyring.gpg: Hier wird definiert, welcher GPG-Schlüssel zur Verifizierung der Paketquellen verwendet werden soll – nämlich der, den Sie zuvor importiert haben.

Durch sudo tee wird diese Konfiguration als Datei namens gnupg-devel.sources im Verzeichnis /etc/apt/sources.list.d/ gespeichert. Das ist die empfohlene Stelle für zusätzliche Paketquellen unter Debian – so bleibt das System übersichtlich und standardkonform.

GnuPG installieren: Paketlisten aktualisieren und Version auswählen

Sobald das Repository eingebunden und der Signaturschlüssel importiert wurde, können Sie mit apt update die Paketlisten aktualisieren:

$ sudo apt update

Damit lädt der Paketverwalter die neuesten Informationen aus allen eingetragenen Quellen – inklusive des GnuPG-Repositorys.

Vor der Installation werfen Sie am besten einen Blick auf die Paketprioritäten und stellen sicher, dass tatsächlich die gewünschte Version verwendet wird. Prüfen Sie dazu die aktuelle Paketlage:

$ apt policy gnupg2
gnupg2:
  Installiert:           2.2.40-1.1
  Installationskandidat: 2.2.40-1.1
  Versionstabelle:
     2.5.8-2 500
        500 https://repos.gnupg.org/deb/gnupg/bookworm-devel bookworm/main amd64 Packages
 *** 2.2.40-1.1 900
        900 http://deb.debian.org/debian bookworm/main amd64 Packages
        100 /var/lib/dpkg/status

Hier zeigt apt sowohl die aktuell installierte Version als auch alle verfügbaren Alternativen – inklusive deren Prioritäten. Wird zum Beispiel die Standardversion mit einer Priorität von 900 und die Version aus dem GnuPG-Repository mit 500 geführt, zieht apt bei einem normalen apt upgrade weiterhin die ältere Version vor.

Damit die neuere Version (2.4.8 oder 2.5.8) installiert oder aktualisiert wird, müssen Sie die gewünschte Quelle explizit angeben. Das geht am einfachsten mit:

sudo apt install -t <suite> gnupg2

Dabei steht <suite> für den Repository-Namen in Ihrer sources-Datei, z. B. bookworm, trixie, jammy oder daedalus. Dieser Aufruf sorgt dafür, dass apt nicht nur gnupg2, sondern auch alle zugehörigen Komponenten wie gpg-agent, dirmngr, libgcrypt usw. aus dem neuen Repository installiert.

In anderen Fällen kann es sein, dass beide Versionen die gleiche Priorität haben, typischerweise 500. Dann entscheidet apt nicht nach Relevanz, sondern wählt schlicht die neuere Version aus dem neu hinzugekommenen Repository. Das Upgrade erfolgt dann automatisch beim nächsten regulären apt upgrade.

Hinweis: Wenn Sie mit einer Smartcard arbeiten, denken Sie daran, das Paket scdaemon manuell zu installieren – es wird nicht automatisch mitgezogen.

GnuPG-Version anzeigen: So prüfen Sie die Installation

Nachdem die Installation abgeschlossen ist, lohnt sich ein kurzer Blick auf die installierte Version – denn hier zeigt sich, ob Ihr System tatsächlich mit dem neuen GnuPG arbeitet. Rufen Sie dazu einfach folgenden Befehl auf:

gpg --version

Die Ausgabe enthält neben der Versionsnummer auch Informationen über die eingesetzte Krypto-Bibliothek (libgcrypt), die unterstützten Verfahren und den Pfad zum GnuPG-Home-Verzeichnis.

Nach dem Upgrade auf Version 2.5.8 erscheint beispielsweise:

gpg (GnuPG) 2.5.8
libgcrypt 1.11.1
[...]
Unterstützte Verfahren:
Öff. Schlüssel: RSA, Kyber, ELG, DSA, ECDH, ECDSA, EDDSA
Verschlü.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
           CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2

Auffällig ist unter anderem der Unterschied in den unterstützten Verfahren: In Version 2.5.8 ist auch Kyber aufgeführt – ein quantensicheres Schlüsselaustauschverfahren, das in GnuPG 2.5 erstmals eingeführt wurde. Damit steht Ihnen ab sofort eine deutlich modernere Krypto-Architektur zur Verfügung.

gpg-agent und dirmngr unter GnuPG 2.4.8 und 2.5.8: Neustart und Kontrolle

Der gpg-agent ist ein zentraler Bestandteil von GnuPG: Er verwaltet Passphrasen, kommuniziert mit Smartcards und stellt verschiedene Schnittstellen über Unix-Sockets bereit. Auch der dirmngr gehört zum Standardbetrieb – er ist unter anderem für den Abruf von Schlüsseln und Zertifikaten zuständig.

Nach der Installation der neuen Version lohnt sich ein kurzer Blick auf beide Komponenten – insbesondere, weil sich die Verwaltung geändert hat: Unsere Pakete verzichten auf die systemd-Integration. Das heißt, gpg-agent und dirmngr werden nicht mehr über systemctl --user gestartet, sondern laufen wieder im klassischen Modus – direkt durch GnuPG selbst.

Wenn Sie prüfen möchten, ob der Agent läuft, nutzen Sie:

$ gpgconf --list-dirs agent-socket
/run/user/1000/gnupg/S.gpg-agent

Sollten Sie nach der Installation oder Konfigurationsänderung auf Probleme stoßen – etwa eine Warnung wie:

gpg: WARNING: server 'dirmngr' is older than us (2.4.7 < 2.5.8)

– dann ist wahrscheinlich noch ein alter Hintergrundprozess aktiv.

In diesem Fall beenden Sie am besten alle GnuPG-Dienste in einem Rutsch:

gpgconf --kill all

Das ist die empfohlene Methode nach einem Upgrade. GnuPG startet alle benötigten Komponenten automatisch neu – sauber und in der richtigen Version.

Hinweis: Falls Sie zuvor GnuPG 2.2.x verwendet haben, waren unter Umständen noch systemd-Units für gpg-agent oder dirmngr aktiv. Diese wurden beim Upgrade auf 2.4.8/2.5.8 automatisch entfernt – Sie müssen hier nichts weiter aufräumen. Ein Aufruf wie systemctl --user list-unit-files | grep gpg-agent sollte keine Ausgabe mehr liefern.

Support und Feedback: So tauschen Sie sich mit anderen aus

Wenn Sie beim Testen der Pakete auf Schwierigkeiten stoßen oder sich austauschen möchten, schauen Sie gern im GnuPG-Forum vorbei – dort können Sie sich mit anderen Nutzer:innen und Entwickler:innen austauschen.

Bitte melden Sie Fehler nicht über den Bugtracker Ihrer Distribution, sondern direkt beim GnuPG-Projekt (Aussagekräftigen Bugreport schreiben).