{"id":8485,"date":"2022-02-20T13:31:31","date_gmt":"2022-02-20T11:31:31","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=8485"},"modified":"2022-02-20T13:31:32","modified_gmt":"2022-02-20T11:31:32","slug":"warning-apt-key-is-deprecated-meldung-verstehen-und-loesen-beim-hinzufuegen-neuer-paketquellen","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/warning-apt-key-is-deprecated-meldung-verstehen-und-loesen-beim-hinzufuegen-neuer-paketquellen\/","title":{"rendered":"&#8222;Warning: apt-key is deprecated&#8220; Meldung verstehen und l\u00f6sen beim hinzuf\u00fcgen neuer Paketquellen"},"content":{"rendered":"<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).<\/p>\n<\/blockquote>\n<p>Diese Fehlermeldung erscheint seit einiger Zeit, wenn man versucht, einen neuen GPG-Schl\u00fcssel hinzuzuf\u00fcgen. Bei Drittanbieter-Paketquellen von APT-Paketen wird meist der \u00f6ffentliche Schl\u00fcssel heruntergeladen und direkt an<strong> apt-key add <\/strong>\u00fcbergeben, beispielsweise so:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">pi@pi:~ $ wget -q -O - https:\/\/download.bell-sw.com\/pki\/GPG-KEY-bellsoft | sudo apt-key add -\nWarning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).\nOK<\/code><\/pre>\n<h2 class=\"wp-block-heading\" id=\"warum-erscheint-diese-meldung-und-was-bedeutet-sie\">Was machen wir da \u00fcberhaupt?<\/h2>\n<p>Per APT verteilte Softwarepakete werden signiert. Damit soll sichergestellt werden, dass ihr wirklich die originalen Pakete von der jeweiligen Organisation wie z.B. Debian erhaltet. Wie das im Detail funktioniert, h\u00e4ngt mit asymmetrischer Verschl\u00fcsselung und der Funktionsweise von PGP zusammen. Das w\u00fcrde hier den Rahmen sprengen. Wir belassen es daher an der Stelle dabei, dass sich mit der Signatur die Integrit\u00e4t der Pakete sicherstellen l\u00e4sst &#8211; was grunds\u00e4tzlich eine sinnvolle Sache ist und die Sicherheit erh\u00f6ht. <\/p>\n<p>Mit <strong>apt-key add<\/strong> speichert ihr den \u00f6ffentlichen Schl\u00fcssel der jeweiligen Organisation auf eurem Pi oder Server und vertraut ihm damit. Ansonsten h\u00e4tte das System kein Vertrauensverh\u00e4ltnis &#8211; die Installation von Paketen aus nicht vertrauensw\u00fcrdigen Quellen w\u00fcrde abgewiesen. Kann man selbst testen, in dem man eine Drittanbieter-Paketquelle hinzuf\u00fcgt, ohne vorher deren \u00f6ffentlichen Schl\u00fcssel zu importieren.<\/p>\n<h2 class=\"wp-block-heading\" id=\"warum-erscheint-diese-meldung-und-was-bedeutet-sie\">Warum ist apt-key dann veraltet (&#8222;deprecated&#8220;)?<\/h2>\n<p>Doch warum ist <strong>apt-key<\/strong> nun veraltet? Der Grund liegt in der Art und Weise, wie <strong>apt <\/strong>mit den Schl\u00fcsseln umgeht: F\u00fcgt ihr einen neuen Schl\u00fcssel mit apt-key hinzu, wird dieser in einen Ordner von vertrauensw\u00fcrdigen Schl\u00fcsseln (konkret <strong>\/etc\/apt\/trusted.gpg.d<\/strong>) abgelegt. Wenn man ein Paket installiert, pr\u00fcft apt, ob es von <strong>irgendjemandem<\/strong> signiert wurde, dessen Schl\u00fcsseln wir vertrauen. Es wird nicht vorher abgefragt, ob der Schl\u00fcssel zu der Paketquelle passt. <\/p>\n<p>Das ist zwar immer noch sicherer als gar keine Signaturen zu verwenden, aber es schw\u00e4cht die Sicherheit. Besser w\u00e4re es, wenn ein Schl\u00fcssel nur f\u00fcr das dazugeh\u00f6rige Repository akzeptiert wird. Also eine 1:1 Beziehung, statt eines generellen, bedingungslosen Vertrauensverh\u00e4ltnisses. Aus diesem Grunde wurde a<strong>pt-key<\/strong> als veraltet markiert, damit man auf dieses neue Verfahren wechselt. <\/p>\n<p><a href=\"https:\/\/manpages.debian.org\/testing\/apt\/apt-key.8.en.html\" title=\"Seit Debian 11\" target=\"_blank\" rel=\"nofollow\">Seit Debian 11<\/a> bzw Ubuntu 22.04 ist apt-key nur als veraltet markiert und daher weiterhin verf\u00fcgbar. Allerdings ist das die letzte Hauptversion! Mit der n\u00e4chsten Version von Debian bzw. Ubuntu wird es aller Voraussicht nach entfernt. Ich werde es daher in den Beitr\u00e4gen nicht mehr einsetzen und ihr solltet es m\u00f6glichst auch nicht mehr tun.<\/p>\n<h2 class=\"wp-block-heading\" id=\"warum-erscheint-diese-meldung-und-was-bedeutet-sie\">Wenn apt-key veraltet ist, wie f\u00fcge ich dann einen Schl\u00fcssel hinzu?<\/h2>\n<p>Zun\u00e4chst braucht es einen Ordner: <strong>\/etc\/apt\/trusted.gpg.d<\/strong> sollte nicht verwendet werden, sonder ein eigener Ordner. Dieser ist frei W\u00e4hlbar, ein sinnvoller Pfad k\u00f6nnte z.B. <strong>\/usr\/local\/share\/keyrings<\/strong> sein.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo mkdir \/usr\/local\/share\/keyrings<\/code><\/pre>\n<p>Als n\u00e4chstes brauchen wir den \u00f6ffentlichen PGP-Schl\u00fcssel. Der wird wie zuvor heruntergeladen, aber in eine Datei. Es macht an der Stelle Sinn, gleich mit <strong>file<\/strong> zu pr\u00fcfen, ob es wirklich ein PGP-Key ist. Nicht von <em>old<\/em> verwirren lassen, &#8222;PGP public key block Public-Key (old)&#8220; ist in Ordnung.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ wget -q -O key.gpg https:\/\/download.bell-sw.com\/pki\/GPG-KEY-bellsoft\n$ file key.gpg\nkey.gpg: PGP public key block Public-Key (old)<\/code><\/pre>\n<p>Nun m\u00fcssen wir uns einen Schl\u00fcsselring erstellen, den wir APT \u00fcbergeben k\u00f6nnen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ gpg --no-default-keyring --keyring .\/tmp.gpg --import key.gpg\ngpg: key 32E9750179FCEA62: public key &quot;BellSoft LLC &lt;info@bell-sw.com&gt;&quot; imported\ngpg: Total number processed: 1\ngpg:               imported: 1\n\n$ gpg --no-default-keyring --keyring .\/tmp.gpg --export --output bell-sw.gpg\n\n$ rm tmp.gpg key.gpg<\/code><\/pre>\n<p>Fertig ist <strong>bell-sw.gpg,<\/strong> der hier auch gleich einen sprechenden Name zur Zuordnung erhalten hat. Diesen verschieben wir nun in das zuvor erstellte Verzeichnis:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo mv bell-sw.gpg \/usr\/local\/share\/keyrings<\/code><\/pre>\n<p>Auf den verweist du nun im Eintrag deiner deb-Paketquelle. Es empfiehlt sich, eine Liste pro Repository\/Hersteller in <strong>\/etc\/apt\/sources.list.d<\/strong> anzulegen, die auf<strong> .list<\/strong> endet. In meinem Beispiel lege ich also <strong>\/etc\/apt\/sources.list.d\/bell-sw.list<\/strong> an. Im normalen Paketquellen-Eintrag f\u00fcgt man zwischen <strong>deb<\/strong> und der URL folgendes ein:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">[signed-by=\/usr\/local\/share\/keyrings\/bell-sw.gpg]<\/code><\/pre>\n<p>Beispiel:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">deb [arch=amd64 signed-by=\/usr\/local\/share\/keyrings\/bell-sw.gpg] https:\/\/apt.bell-sw.com\/ stable main<\/code><\/pre>\n<p>Dies ist nat\u00fcrlich entsprechend der Architektur, Paketquellen-URL und ggf. des von dir gew\u00e4hlten Pfades anzupassen.<\/p>\n<p>Nun kannst du die Paketquellen ganz normal via <strong>sudo apt update<\/strong> aktualisieren, damit sich apt den Paketindex aus dem neu hinzugef\u00fcgten Repository laden kann. Hier sollte euer Repository (im Beispiel <strong>apt.bell-sw.com<\/strong>) gelistet sein und keine Fehlermeldung erscheinen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ sudo apt update\nHit:1 http:\/\/security.debian.org\/debian-security bullseye-security InRelease\nHit:2 http:\/\/deb.debian.org\/debian bullseye InRelease\nHit:3 http:\/\/archive.raspberrypi.org\/debian bullseye InRelease\nHit:4 http:\/\/deb.debian.org\/debian bullseye-updates InRelease\nGet:5 https:\/\/apt.bell-sw.com stable InRelease [4,166 B]\nGet:6 https:\/\/apt.bell-sw.com stable\/main arm64 Packages [18.2 kB]\nFetched 22.4 kB in 2s (12.6 kB\/s)\nReading package lists... Done\nBuilding dependency tree... Done\nReading state information... Done\n2 packages can be upgraded. Run &#039;apt list --upgradable&#039; to see them.<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). Diese Fehlermeldung erscheint seit einiger Zeit, wenn man versucht, einen neuen GPG-Schl\u00fcssel hinzuzuf\u00fcgen. Bei Drittanbieter-Paketquellen von APT-Paketen wird meist der \u00f6ffentliche Schl\u00fcssel heruntergeladen und direkt an apt-key add \u00fcbergeben, beispielsweise so: Was machen wir da \u00fcberhaupt? Per APT verteilte Softwarepakete werden signiert. Damit &#8230;<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[938,954,288,1021],"class_list":["post-8485","post","type-post","status-publish","format-standard","hentry","category-linux","tag-apt","tag-apt-get","tag-debian","tag-paketquellen"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8485","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=8485"}],"version-history":[{"count":3,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8485\/revisions"}],"predecessor-version":[{"id":8488,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/8485\/revisions\/8488"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=8485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=8485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=8485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}