[[Vorlage(Kopie, apt/Schlüsselverwaltung)]] [[Vorlage(Getestet, jammy)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] [:GnuPG:] [:apt:] [:Paketquellen:] }}} ''Achtung: Diese Anleitung ist veraltet. Zumindest bei 22.04 LTS Jammy Jellyfish liegen die Schlüssel einzeln in /etc/apt/trusted.gpg.d/, eine Referenz von der Datei in /etc/apt/sources.list.d/ ist nicht mehr notwendig. Ich bin selbst nur Laie und habe das unten genannte sudo -H gpg --dearmor -o verwendet, die Dateien allerdings anschliessend verschoben. Ob es eine offizielle Methode gibt, ist mir unbekannt.'' [[Inhaltsverzeichnis()]] Pakete in Paketquellen werden mit einem Schlüssel kryptografisch signiert, um die Integrität der Pakete überprüfen zu können. Bisher wurden diese mit [:apt/apt-key:] verwaltet, was jedoch veraltet ist und seit Ubuntu 22.04 nicht mehr vollumfänglich unterstützt wird. Die Schlüssel wurden in der Datei '''/etc/apt/trusted.gpg''' bzw. in einzelnen Dateien unter '''/etc/apt/trusted.gpg.d/''' abgelegt. Der Nachteil ist, dass jeder Schlüssel für jede Paketquelle gültig ist. Damit kann mit dem Schlüssel einer Fremdquelle auch ein Paket aus den offiziellen Paketquellen signiert und von apt erfolgreich verifiziert werden, obwohl es nicht vom ursprünglichen Autor signiert wurde. Problematisch wird dies ebenfalls, wenn ein Schlüssel kompromittiert wurde, da hierbei eine MITM-Attacke nicht erkannt werden kann, sofern ein Fremdschlüssel im System ist, für den der Angreifer den zugehörigen Privatschlüssel hat. Die neue Methode bietet jedoch keine Sicherheit gegen Fremdquellen, deren Autoren absichtlich Schaden am System anrichten wollen und daher schädliche Pakete in einer Fremdquelle bereitstellen, die das Opfer im System eingetragen hat. Schön länger besteht die Möglichkeit, einer Paketquelle fest einen Schlüssel zuzuordnen, welche hier erläutert wird und die empfohlene Methode ist. Ab Ubuntu 22.04 funktioniert die veraltete Methode mit [:apt/apt-key:apt-key] nicht mehr. = Schlüssel hinzufügen = Um einen Schlüssel dem System hinzuzufügen, ist daher folgende Vorgehensweise notwendig. Binäre Schlüssel können direkt heruntergeladen werden. Beispiel: {{{#!vorlage Befehl sudo wget -nc -O /etc/apt/keyrings/example-archive-keyring.gpg https://example.org/public.key }}} ASCII-verpackte Schlüssel (base64-kodiert) müssen erst mit [:root:]-Rechten an gpg weitergegeben werden, um sie zu dekodieren (dearmor genannt). Er wird dann zu einer OpenPGP-Binärdatei, welche nicht mehr als Text lesbar ist, und wird in '''/etc/apt/keyrings/schluessel.gpg''' abgespeichert. Hierbei sollte ein sinnvoller Name gewählt werden, um den Schlüssel sinnvoll zuordnen zu können. Evtl. muss das unter Root nötige gpg-Verwaltungsverzeichnis noch manuell angelegt werden: `sudo -H mkdir -p /root/.gnupg` {{{#!vorlage Befehl curl https://example.org/public-key.asc | sudo -H gpg --dearmor -o /etc/apt/keyrings/example-archive-keyring.gpg }}} Anhand der Schlüssel-ID kann ebenfalls ein Schlüssel hinzugefügt werden. {{{#!vorlage Befehl sudo -H gpg -k && sudo -H gpg --no-default-keyring --keyring /usr/share/keyrings/schlüssel.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys }}} Danach ist der Schlüssel im System vorhanden, wird aber noch nicht aktiv genutzt. = sources.list anpassen = Es muss die URL der Paketquelle (in '''/etc/apt/sources.list''' bzw. '''/etc/apt/sources.list.d/datei.list''') eingetragen bzw. angepasst werden, sodass der passenden Schlüssel verwendet wird. {{{ deb [signed-by=/etc/apt/keyrings/schluessel.gpg] http://example.org/linux/deb/ stable main}}} Der Teil ''signed-by'' in den eckigen Klammern ist dabei relevant und muss den Pfad zum Schlüssel beinhalten. Es können, müssen aber nicht, mehrere Optionen dort gelistet sein. Auch hier muss der Name angepasst werden. = Schlüssel löschen = Um einen Schlüssel zu löschen, genügt es, die entsprechende Datei unter '''/etc/apt/keyrings''' zu löschen. = Links = * [https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html Artikel bei Linuxuprising] {en} #tag: Ubuntu, System, Installation, Paketverwaltung