APT/Fehlerbehebung/Legacy keyring: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
== Lösung ==
== Lösung ==
=== Best Practice ===
=== Best Practice ===
Mit ''[[apt-key]]'' den Nummer des Schlüssels ermitteln und ihn in die [[gpg]]-Datenbank importieren
Mit ''[[apt-key]]'' die Nummer des Schlüssels ermitteln und diesen in die [[gpg]]-Datenbank importieren


; Beispiel
Suchen des in der Fehlermeldung erwähnen Schlüssels anhand des Namens
<syntaxhighlight lang="bash" highlight="1" line>
<syntaxhighlight lang="bash" highlight="1" line>
apt-key list
apt-key list
[[...]]
[[...]]
 
pub rsa4096 2020-01-29 [SC]
8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0
uid [ unbekannt] TeamViewer Deutschland GmbH (TeamViewer Linux 2020) <support@teamviewer.com>
[[...]]
[[...]]
</syntaxhighlight>
</syntaxhighlight>
Suchen Sie den Abschnitt, in dem das in der ersten Warnung aufgeführte Paket erwähnt wird
wenn Sie mehrere Warnungen sehen, müssen Sie diese Schritte nacheinander für jede einzelne wiederholen


In meinem Fall suche ich nach dem Schlüssel für TeamViewer, und der sieht wie folgt aus
In meinem Fall suche ich nach dem Schlüssel für TeamViewer, und der sieht wie folgt aus
pub rsa4096 2020-01-29 [SC]
8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0
uid [ unbekannt] TeamViewer Deutschland GmbH (TeamViewer Linux 2020) <support@teamviewer.com>


Kopieren Sie die letzten 8 Zeichen aus der zweiten Zeile - im obigen Beispiel ist dies 0C12 89C0 - und wandeln Sie sie mit dem folgenden Befehl in eine .gpg-Datei um
Kopieren Sie die letzten 8 Zeichen aus der zweiten Zeile - im obigen Beispiel ist dies 0C12 89C0 - und wandeln Sie sie mit dem folgenden Befehl in eine .gpg-Datei um
Zeile 44: Zeile 39:
  # '''apt-key''' ''export 0C1289C0'' | '''gpg''' ''--dearmour -o /etc/apt/trusted.gpg.d/teamviewer.gpg''
  # '''apt-key''' ''export 0C1289C0'' | '''gpg''' ''--dearmour -o /etc/apt/trusted.gpg.d/teamviewer.gpg''


Wenn Sie das nächste Mal ein apt-Update ausführen, wird der Fehler mit dem veralteten Schlüssel für das gerade angewendete Repository nicht mehr erscheinen (wenn allerdings mehr als ein Repository betroffen ist, müssen Sie die obigen Schritte für jedes einzelne wiederholen)
; Hinweise
: Wenn Sie mehrere Warnungen sehen, müssen Sie diese Schritte nacheinander für jede einzelne wiederholen
: wenn allerdings mehr als ein Repository betroffen ist, müssen Sie die obigen Schritte für jedes einzelne wiederholen)
 
 
 
Wenn Sie das nächste Mal ein apt-Update ausführen, wird der Fehler mit dem veralteten Schlüssel für das gerade angewendete Repository nicht mehr erscheinen


=== Quick and dirty ===
=== Quick and dirty ===

Version vom 4. September 2024, 07:06 Uhr

Legacy keyring - Schlüssel in veralteten Schlüsselbund gespeichert

Fehlermeldung

Key is stored in legacy trusted.gpg keyring
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))
Beispiel
apt update
Warning: https://updates.signal.org/desktop/apt/dists/xenial/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.
Ursache

Schlüssel ist im veralteten Schlüsselbund trusted.gpg gespeichert

Lösung

Best Practice

Mit apt-key die Nummer des Schlüssels ermitteln und diesen in die gpg-Datenbank importieren

Beispiel

Suchen des in der Fehlermeldung erwähnen Schlüssels anhand des Namens

apt-key list
[[...]]
 pub rsa4096 2020-01-29 [SC]
 8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0
 uid [ unbekannt] TeamViewer Deutschland GmbH (TeamViewer Linux 2020) <support@teamviewer.com>
[[...]]

In meinem Fall suche ich nach dem Schlüssel für TeamViewer, und der sieht wie folgt aus

Kopieren Sie die letzten 8 Zeichen aus der zweiten Zeile - im obigen Beispiel ist dies 0C12 89C0 - und wandeln Sie sie mit dem folgenden Befehl in eine .gpg-Datei um

  • Denken Sie daran, das Leerzeichen zwischen den 8 Zeichen wegzulassen und einen gpg-Dateinamen anzugeben, der zu dem Paket passt, für das der Schlüssel bestimmt ist

In meinem Beispiel musste ich Folgendes ausführen

# apt-key export 0C1289C0 | gpg --dearmour -o /etc/apt/trusted.gpg.d/teamviewer.gpg
Hinweise
Wenn Sie mehrere Warnungen sehen, müssen Sie diese Schritte nacheinander für jede einzelne wiederholen
wenn allerdings mehr als ein Repository betroffen ist, müssen Sie die obigen Schritte für jedes einzelne wiederholen)


Wenn Sie das nächste Mal ein apt-Update ausführen, wird der Fehler mit dem veralteten Schlüssel für das gerade angewendete Repository nicht mehr erscheinen

Quick and dirty

Auch wenn die unten beschriebene Methode funktioniert hat, möchte ich betonen, dass a) Ihre Erfahrungen variieren können und b) es nicht der klügste Weg ist, dieses Problem zu lösen, da es, abhängig von den Legacy-Schlüsseln auf Ihrem System, die Sicherheit Ihres Systems gefährden könnte

Wenn Sie alle Vorsicht in den Wind schlagen wollen, öffnen Sie ein neues Terminalfenster und führen Sie

# cd /etc/apt
# cp trusted.gpg trusted.gpg.d

Wenn Sie das nächste Mal apt update ausführen, wird der betreffende Fehler nicht mehr erscheinen

Hintergrund

Diese Fehlermeldung erscheint seit Debian 11, wenn man versucht, einen neuen GnuPG-Schlüssel hinzuzufügen

Bislang wurde für Drittanbieter-Paketquellen von APT-Paketen der öffentliche Schlüssel heruntergeladen und an apt-key add übergeben

# wget -q -O - https://download.bell-sw.com/pki/GnuPG-KEY-bellsoft | apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))
OK

Per APT verteilte Softwarepakete werden signiert

  • Damit soll sichergestellt werden, dass ihr wirklich die originalen Pakete von der jeweiligen Organisation wie Debian erhaltet
  • Wie das im Detail funktioniert, hängt mit asymmetrischer Kryptografie und der Funktionsweise von PGP zusammen
    • Das würde hier den Rahmen sprengen
    • Wir belassen es daher an der Stelle dabei, dass sich mit der Signatur die Integrität der Pakete sicherstellen lässt – was grundsätzlich eine sinnvolle Sache ist und die Sicherheit erhöht

Mit apt-key add wird der öffentlichen Schlüssel des Repositorys gespeichert und ihm vertraut

  • Ansonsten hätte das System kein Vertrauensverhältnis – die Installation von Paketen aus nicht vertrauenswürdigen Quellen würde abgewiesen
  • Kann man selbst testen, indem man eine Drittanbieter-Paketquelle hinzufügt, ohne vorher deren öffentlichen Schlüssel zu importieren

apt-key ist veraltet

  • Fügt ihr einen neuen Schlüssel mit apt-key hinzu, wird dieser in einen Ordner von vertrauenswürdigen Schlüsseln (konkret /etc/apt/trusted.gpg.d) abgelegt
  • Wenn man ein Paket installiert, prüft apt, ob es von irgendjemandem signiert wurde, dessen Schlüsseln wir vertrauen
  • Es wird nicht vorher abgefragt, ob der Schlüssel zu der Paketquelle passt

Das ist zwar immer noch sicherer als gar keine Signaturen zu verwenden, aber es schwächt die Sicherheit

  • Besser wäre es, wenn ein Schlüssel nur für das dazugehörige Repository akzeptiert wird
  • Also eine 1:1 Beziehung, statt eines generellen, bedingungslosen Vertrauensverhältnisses
  • Aus diesem Grunde wurde apt-key als veraltet markiert, damit man auf dieses neue Verfahren wechselt

Seit Debian 11 bzw. Ubuntu 22.04 ist apt-key nur als veraltet markiert und daher weiterhin verfügbar

  • Allerdings ist das die letzte Hauptversion!
  • Mit der nächsten Version von Debian bzw. Ubuntu wird es aller Voraussicht nach entfernt
  • Ich werde es daher in den Beiträgen nicht mehr einsetzen und ihr solltet es möglichst auch nicht mehr tun


Anhang

Siehe auch

Dokumentation

Man-Pages
Info-Pages

Links

Projekt
Weblinks