Debian 12 und Repositories aus dritter Hand

Ich habe bereits mehrmals über die Handhabung von Repositories aus dritter Hand berichtet. Das früher dafür verwendete Tool apt-key ist seit Jahren als veraltet markiert und sollte mit Debian 12 entfernt werden. Dazu die Manpage von apt-key:

apt-key(8) will last be available in Debian 11 and Ubuntu 22.04.

Das ist aber nicht geschehen, denn apt-key ist immer noch Bestandteil von apt:

apt-cache search apt-key
apt - Paketverwaltung für die Befehlszeile

Das bedeutet, dass apt-key weiterhin als veraltet markiert ist und bei einem apt update die gleichen Warnungen erzeugt wie bisher:

W: https://wire-app.wire.com/linux/debian/dists/stable/InRelease: Schlüssel ist im veralteten Schlüsselbund trusted.gpg gespeichert (/etc/apt/trusted.gpg), siehe den Abschnitt MISSBILLIGUNG in apt-key(8) für Details.

Verwirrspiel

Einen Ersatz gibt es bisher nicht, was bedeutet, dass Schlüssel für Repositories aus dritter Hand manuell eingetragen und bereits vorhandene Repos händisch umgestellt werden müssen. Die Sache wird aber noch verwirrender, weil von Debian offiziell an verschiedenen Stellen unterschiedliche Handlungsvorgaben gemacht werden, wie mit den Schlüsseln von Repositories aus dritter Hand umzugehen ist.

Wie in der Warnung oben zu sehen ist, empfiehlt apt, diese Schlüssel anstatt wie bisher in /etc/apt/trusted.gpg abzulegen, das nun in /etc/apt/trusted.gpg.d zu tun. Im Debian Wiki steht dazu allerdings, das Hinzufügen von OpenPGP-Schlüsseln zu /etc/apt/trusted.gpg oder /etc/apt/trusted.gpg.d sei gleichermaßen unsicher. Dort wird /usr/share/keyrings empfohlen.

signed-by

Der Grund dafür ist, dass beim Hinzufügen eines OpenPGP-Schlüssels zum Signieren eines Repositorys zu einem der beiden Verzeichnisse dem Schlüssel von apt bedingungslos auch bei allen anderen auf dem System konfigurierten Repositorys vertraut wird, die über keine signed-by-Option verfügen. Infolgedessen kann jedes inoffizielle APT-Repository, dessen Signierschlüssel zu /etc/apt/trusted.gpg oder /etc/apt/trusted.gpg.d hinzugefügt wurde, jedes Paket auf dem System ungefragt aktualisieren oder ersetzen.

Deshalb ergibt es Sinn, sich bereits jetzt mit der im Debian-Wiki erwähnten Methode signed-by vertraut zu machen. Laut Debian-Wiki sollte der Schlüssel über HTTPS an einen Ort heruntergeladen werden, der nur von Root beschreibbar ist, (/usr/share/keyrings). Der Schlüssel sollte einen kurzen Namen erhalten, der das Repository beschreibt, gefolgt von archive-keyring als Erweiterung. Wenn das Repository z. B. mein_repository heißt, sollte die Schlüsseldatei mein_repository-archive-keyring.gpg heißen.

ASCII-Armor entfernen

Die OpenPGP-Keys von Repositories aus dritter Hand sind in der Regel mit der Methode ASCII-Armor versehen. Diesen Schutz gilt es bereits während des Downloads des Schlüssels mittels gpg --dearmor zu entfernen. Nehmen wir als Beispiel den Messenger Signal, der auf seiner Webseite bereits die korrekte Vorgehensweise vorgibt:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg

Nachdem der Schlüssel am richtigen Ort liegt, gilt es, den Eintrag für die Quellenliste zu formulieren. Um im Beispiel bei Signal zu bleiben, legen wir zunächst einen Listeneintrag in /etc/apt/sources.list/d an:

sudo nano /etc/apt/sources.list.d/signal.list

Der Inhalt des Eintrags sollte im Fall von Signal so aussehen:

deb [signed-by=/usr/share/keyrings/signal-archive-keyring.gpg] https://updates.signal.org/debian/ stable main

Apt-Mitentwickler Julian Andreas Klose hat 2021 einen weiteren Vorschlag als Merge-Request eingebracht, dem das Quellformat DEB822 zugrunde liegt. Das habe ich aber bisher nicht weiter verfolgt.

Unklare Zukunft

Das Einbinden von Repositories aus dritter Hand wird mit Debian 12 und seinen Derivaten nicht unbedingt einfacher oder transparenter, aber angeblich sicherer. Mit der oben beschriebenen Methode gehören dann wenigstens die lästigen Warnungen von apt update der Vergangenheit an. Wenn man sich die Zeile, die den Schlüssel per wget holt und die Definition für die Quellenliste archiviert, muss man im Bedarfsfall nur noch die Befehle anpassen. Ob es zu einem späteren Zeitpunkt einen Ersatz für apt-key geben wird, bleibt unklar.

Teilt den Beitrag, falls ihr mögt

12 Kommentare

  1. Danke für den Artikel. Ich bin momentan noch auf Debian 11. Einen Wechsel auf die 12 werde ich nach dem 1., oder 2. Point Release machen. Daher ist das bei mir noch nicht sooooo dringend, mit dem Upgrade.

    Im Allgemeinen versuche ich so wenig wie möglich Software/Pakete auf meinen System zu haben, welche außerhalb des offiziellen Repositories liegen. Aktuell habe ich nur den Vivaldi Browser und das ProtonVPN per .deb installiert. Da hatte ich auch die ganzen Jahre so gemacht und bis jetzt keine Probleme.

    Ansonsten habe ich auch vieles per Flatpak/Flathub installiert.

    Mir wäre es auch lieber, es wäre alles was ich ich so brauche im Repository. Aber da muss man sich mit den Gegebenheiten arrangieren, eine Ideallösung gibts leider nicht. Da hat auch jeder so seine Vorstellungen und Wünsche. Aber wir Linuxer haben uns schon immer zu helfen gewusst.

    Grüße Sven

    0
  2. Hast du das für den Vivaldi Browser auch so installiert?
    Ich habe mal gestöbert (muss nicht vollständig sein) was die dazu schreiben.
    Das war nicht wirklich erquickend.
    Vielleicht hast du noch andere Quellen/Beschreibungen die hilfreich sind.

    0
      1. Bei Vivaldi selbst.
        https://help.vivaldi.com/de/desktop-de/installieren-und-aktualisieren/manuelle-einrichtung-der-vivaldi-linux-repositories/

        https://help.vivaldi.com/desktop/install-update/manual-setup-vivaldi-linux-repositories/

        https://help.vivaldi.com/desktop/install-update/obtaining-official-builds/

        Irgendwie finde ich nicht mehr die richtige Seite.

        Wie wirst du den Vivaldi unter Bookworm den installieren bzw. wie anders du das bzgl. Key?
        Hatte in Erinnerung das du den Vivaldi nutzt.

        0
        1. Ich habe fast alle Browser am Markt installiert, unter anderem auch Vivaldi. Ich habe Bookworm nur in einer VM in Proxmox. Werd mir das in den nächsten Tagen anschauen. Den Schlüssel gibt es hier. Den musst du dann halt dem Artikel folgend speichern und einen Quelllisteneintrag mit ‘signed-by’ erstellen.

          0
  3. Ich installiere genau wie Du oben beschrieben hast, den Google Chrome. Nach apt update und apt install… ist dann aber jedesmal google.list unter sources.list.d wieder “verbogen” und das signed-by verschwunden. Das muss dann danach immer korrigiert werden.
    Auch ist dann eine google.gpg-Datei unter /trusted.gpd abgelegt, die man dann wieder entfernen muss.
    Diese kommt auch wieder nach jedem Update in das Verzeichnis.

    0
      1. Also hier würde ich ja eher die Schuld bei Google suchen? Die verbiegen das ja bei jeder Installation. Ich denke, Debian kann da nichts dafür, oder sehe ich das falsch?
        Mir ist das irgendwann auch eher zufällig aufgefallen, dass man zwar nach den neueren Vorgaben, wie Du oben beschrieben hast, installiert und danach es dann doch wieder nicht passt. Nur wer kontrolliert das immer nach einer Installation?

        0

Kommentar hinterlassen