Debian 11: Repositories aus 3. Hand ohne apt-key einbinden

Wer in letzter Zeit versucht hat, bei Debian, Ubuntu oder deren Repositories aus 3. Hand in die Quellenliste einzutragen und dabei den herkömmlichen Weg zu gehen, wurde mit einer Warnung konfrontiert. Das liegt daran, dass viele Anleitungen im Netz noch immer die Verwendung von apt-key für das Einbinden der Schlüssel verwenden, obwohl apt-key schon lange als überholt gilt. Bereits 2010 wurde es als veraltet und unsicher markiert und wird mit Debian 11 und Ubuntu 22.04 letztmalig ausgeliefert.

Unsichere Methoden

Es gibt verschiedene Möglichkeiten, ein APT-Repository aus dritter Hand einzubinden. Die entsprechenden Schlüssel wurden früher unter /etc/apt/trusted.gpg und in letzter Zeit manuell in Unterverzeichnissen von /etc/apt/trusted.gpg.d abgelegt. Obwohl letzteres oft empfohlen wird, sieht das Debian-Wiki beide Möglichkeiten als unsicher an.

Der Grund dafür ist, dass beim Hinzufügen eines OpenPGP-Schlüssels zum Signieren eines APT-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.

Bisheriges Vorgehen

Eine typische Zeile zum Einbinden des Schlüssels bei Debian-basierten Distributionen sieht oft etwa so aus wie hier am Beispiel des Signal-Messengers:

wget -O- https://updates.signal.org/desktop/apt/keys.asc | sudo apt-key add -

Das ergibt eine Warnung:

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Debian 12 verlangt ein anderes Vorgehen

Apt-key kann derzeit noch benutzt werden, aber mit dem in wenigen Monaten erwarteten Debian 11 fällt diese Möglichkeit weg. Deswegen ergibt es Sinn, sich bereits jetzt mit der von Debian-Wiki erwähnten Methode signed-by vertraut zu machen. Laut dem Debian-Wiki sollte der Schlüssel über HTTPS an einen Ort heruntergeladen werden, der nur von Root beschreibbar ist, wie etwa /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.

Die OpenPGP-Keys von Repositories aus dritter Hand sind in der Regel mit der Methode ASCII-Armor versehen. Diese Verpackung gilt es, bereits während des Downloads zu entfernen.

Im Fall des oben als Beispiel verwendeten Schlüssels für das Repository des Signal-Messengers sieht das dann so aus:

Schlüssel unter Root-Kontrolle

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 der Datei lautet:

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

Dabei sind natürlich die Distribution und der Zweig anzupassen. Für Ubuntu würde es so aussehen:

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

Damit wird das Einbinden von Repositories aus dritter Hand mit Debian 11, Ubuntu 22.04 und deren Derivaten nicht unbedingt einfacher, aber sicherer. Wenn man sich die Zeile, die den Schlüssel per wget holt und die Definition für die Quellenliste wegspeichert, muss man im Bedarfsfall nur noch die Befehle anpassen.

Kommentare

8 Antworten zu „Debian 11: Repositories aus 3. Hand ohne apt-key einbinden“

  1. Avatar von Jochen Geyer
    Jochen Geyer

    Ich ich damals™ noch Debian GNU/Linux verwendete, gab es im Debianforum – also der deutschsprachigen Community – immer die Ansage, wer Fremdquellen verwendet, diese nicht ordentlich pinnt (apt pinning) und sich dann beschwert, dass er/sie sich das Paketmanagement zerschießt, ist selber Schuld.

    Und durfte erst einmal selbst versuchen, das Problem zu lösen.
    Denn Ursache des Problems war nicht das Debian Projekt, sondern einzig der/die Nutzer(in), der/die meinte, es wäre eine gute Idee, ohne Vorkenntnisse einmal flux Fremdpakete installieren zu müssen.

    1. Avatar von Ferdinand

      Das ist wie überall: Man sollte wissen, was man tut. Sonst hatr man schnell ein FrankenDebian. Aber auch Debian-nahe Repositories wie debian-multimedia des Herrn Marrilat haben für viel Kopfzerbrechen gesorgt.

      1. Avatar von Jochen Geyer
        Jochen Geyer

        Hallo Ferdinand,

        mittlerweile heißt das Repository debian-multimedia nur noch deb-multimedia, weil das Debian Projekt den Betreiber von deb-multimedia.
        Die Umbenennung hat das Debian Projekt gefordert, da viele Nutzer dieses Repository mit einem offiziellem Repository des Debian Projektes verwechselten.

        Aber ohne pinning war (und ist wahrscheinlich) dieses Repository ein Lotteriespiel?

  2. Avatar von evil-god
    evil-god

    ich hab gestern genau das alte verfahren auf debian testing gemacht und keine warnung bekommen. aber gut wissen dass sich da was ändert

  3. Avatar von harley-peter
    harley-peter

    Also wenn ich das so richtig verstanden habe, dann ist das wieder der Klassiker um neugierige Linux-Interessierte garantiert von Linux abzuschrecken.

    1. Avatar von Ferdinand

      Solange Du guten Gewissens den Repositories vertrauen kannst, die Du einbinden willst, spricht meines Erachtens nichts dagegen, wenn Du die Schlüssel herunterlädst und in /etc/apt/trusted.gpg.d ablegst.

  4. Avatar von Dennis
    Dennis

    gibt es mittlerweile eine *einfache* automatische beim Einbinden Möglichkeit zu sagen, welche Pakete zu welchem Key gehören sollen? Dass per Default alle Pakete nur mit dem debian keyring signiert sein dürfen und wenn ich DAS ändern will, muss ich was tun?

    1. Avatar von Ferdinand

      Es gibt ein Script, das bestehende Keys richtig in /usr/share/keyrings und in /etc/apt/sources.list.d einbindet. Ich habe es getestet, es funktioniert mit Keys mit der Endung .gpg. Probleme hatte ich mit Keys mit der Endung .asc. Diese musste ich händisch ändern, ohne dass ich wüsste, warum das so ist. Vielleicht mache ich in den nächsten Tagen einen Bericht dazu.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert