{"id":6316,"date":"2022-03-23T22:30:48","date_gmt":"2022-03-23T21:30:48","guid":{"rendered":"https:\/\/axebase.net\/blog\/?p=6316"},"modified":"2022-03-24T16:05:39","modified_gmt":"2022-03-24T15:05:39","slug":"gpg-key-fuer-repositories-importieren","status":"publish","type":"post","link":"https:\/\/axebase.net\/blog\/2022\/03\/23\/gpg-key-fuer-repositories-importieren\/","title":{"rendered":"GPG-Key fuer Repositories importieren"},"content":{"rendered":"<p>Wer unter Debian oder Ubuntu ein Repository, sprich eine Fremdquelle, manuell hinzuf\u00fcgt (deb-Zeile in sources.list(.d\/) mit einem Editor oder \u00fcber ein Frontend oder mit apt-add-repo), erh\u00e4lt nach &#8220;apt update&#8221; (in apt-add-repo enthalten) einen <a href=\"https:\/\/de.wikipedia.org\/wiki\/GNU_Privacy_Guard\" rel=\"noopener\" target=\"_blank\">gpg<\/a>-Error. In folgenden Beispielen ziehe ich TeamViewer heran.<\/p>\n<pre lang=\"sh\" line=\"\" escaped=\"true\">\r\n$ sudo apt update\r\nHit:1 http:\/\/linux.teamviewer.com\/deb stable InRelease\r\n(...)                               \r\nErr:1 http:\/\/linux.teamviewer.com\/deb stable InRelease                                               \r\n  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C5E224500C1289C0\r\n(...)\r\nReading package lists... Done\r\nBuilding dependency tree       \r\nReading state information... Done\r\nAll packages are up to date.\r\nW: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http:\/\/linux.teamviewer.com\/deb stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C5E224500C1289C0\r\nW: Failed to fetch http:\/\/linux.teamviewer.com\/deb\/dists\/stable\/InRelease  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C5E224500C1289C0\r\nW: Some index files failed to download. They have been ignored, or old ones used instead.\r\n$ \r\n<\/pre>\n<p>Das an sich ist wahrlich nichts neues, auch nicht, was zu tun ist, wird trotzdem immer wieder in Foren gefragt.<\/p>\n<p>Im Fall TeamViewer kann man <em>bislang<\/em> ausf\u00fchren:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nwget -q https:\/\/download.teamviewer.com\/download\/linux\/signature\/TeamViewer2017.asc -O- | sudo apt-key add -\r\n<\/pre>\n<p>Man zieht also den Key im ASCII-Format vom teamviewer.com-Server (selbstverst\u00e4ndlich \u00fcber http<em>s<\/em>) und importiert ihn mit apt-key. Das Paket add-apt-key ist auch f\u00fcr das kommende Ubuntu 22.04 Version 1.0-0.5, sage und schreibe 15 (!) Jahre alt. Entsprechend kann eine Message kommen:<\/p>\n<pre lang=\"sh\" line=\"\" escaped=\"true\">\r\n$ sudo apt-key add TeamViewer2017.asc\r\nWarning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).\r\nOK\r\n$\r\n<\/pre>\n<p>Das bedeutet, noch funktioniert es, ist aber abzulehnen, da die Methode \u00fcber kurz oder lang entfernt wird. Entsprechend sollte man sich beizeiten informieren und am besten generell die ersetzende Methode verwenden.<\/p>\n<p>GPG-Keys verwaltet man mit dem Kommando gpg und entsprechenden Optionen. Durch die obige Ausgabe wissen wir, es handelt sich um den Pubkey C5E224500C1289C0. Dies ist lediglich der rechte 16stellige Teil des 40stelligen rsa4096-Pubkeys 8CAE012EBFAC38B17A937CD8C5E224500C1289C0, gen\u00fcgt jedoch.<\/p>\n<p>Wir k\u00f6nnten den Pubkey also mit &#8220;gpg &#8211;receive-keys&#8221; direkt von einem entsprechenden Keyserver ziehen und importieren. Das funktioniert, nur wei\u00df apt davon nichts, die Fehlerausgabe besteht fort.<\/p>\n<p>Es ist also so aufzubereiten, da\u00df apt damit umgehen kann. Dabei kann mit wget das .asc-File gezogen, der relevante Teil \u00fcber &#8220;gpg &#8211;dearmor&#8221; umgewandelt und \u00fcber install oder gpg importiert werden.<\/p>\n<p>Beispiel als Zweizeiler mit wget und install nach &#8220;\/etc\/apt\/trusted.gpg.d\/&#8221;:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nwget -q https:\/\/download.teamviewer.com\/download\/linux\/signature\/TeamViewer2017.asc -O- | gpg --dearmor > teamviewer2017.gpg\r\nsudo install -o root -g root -m 644 teamviewer2017.gpg \/etc\/apt\/trusted.gpg.d\/\r\n<\/pre>\n<p>Beispiel als Einzeiler mit wget und tee nach &#8220;\/etc\/apt\/trusted.gpg.d\/&#8221;:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nwget -q https:\/\/download.teamviewer.com\/download\/linux\/signature\/TeamViewer2017.asc -O- | gpg --dearmor | sudo tee \/etc\/apt\/trusted.gpg.d\/teamviewer2017.gpg >\/dev\/null\r\n<\/pre>\n<p>Beispiel als Einzeiler mit wget und tee nach &#8220;\/usr\/share\/keyrings\/&#8221;:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nwget -q https:\/\/download.teamviewer.com\/download\/linux\/signature\/TeamViewer2017.asc -O- | gpg --dearmor | sudo tee \/usr\/share\/keyrings\/teamviewer2017.gpg >\/dev\/null\r\n<\/pre>\n<p>Beide Pfade sind m\u00f6glich. Bei &#8220;\/usr\/share\/keyrings\/&#8221; erscheint der Key dann auch in software-properties* \u2192 Authentication, kann also auch dort wieder entfernt werden, so man m\u00f6chte.<\/p>\n<p>Hat man mit gpg bereits importiert oder m\u00f6chte es so, kann man auch dies als Ausgangslage nutzen.<\/p>\n<p>Beispiel als Dreizeiler mit gpg und tee nach &#8220;\/usr\/share\/keyrings\/&#8221;:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nsudo gpg --receive-keys --keyserver hkps:\/\/keyserver.ubuntu.com --recv-keys C5E224500C1289C0\r\nsudo gpg -a --output TeamViewer2017.asc --export C5E224500C1289C0\r\ncat TeamViewer2017.asc | gpg --dearmor | sudo tee \/usr\/share\/keyrings\/teamviewer2017.gpg >\/dev\/null\r\n<\/pre>\n<p>Im Beispielfall TeamViewer kann man den mit gpg importierten Pubkey danach auch wieder entfernen:<\/p>\n<pre lang=\"sh\" line=\"1\" escaped=\"true\">\r\nsudo gpg --delete-keys C5E224500C1289C0\r\n<\/pre>\n<p>Der f\u00fcr apt relevante &#8220;\/usr\/share\/keyrings\/teamviewer2017.gpg&#8221; bleibt dabei erhalten.<\/p>\n<p>Hinweis noch zum Copypasten: Das WP-Plugin f\u00fcr Code ist zwar optisch OK, aber etwas tricky. Also aufpassen, da\u00df man Befehlszeilen vollst\u00e4ndig in ein Terminal kopiert!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wer unter Debian oder Ubuntu ein Repository, sprich eine Fremdquelle, manuell hinzuf\u00fcgt (deb-Zeile in sources.list(.d\/) mit einem Editor oder \u00fcber ein Frontend oder mit apt-add-repo), erh\u00e4lt nach &#8220;apt update&#8221; (in apt-add-repo enthalten) einen gpg-Error. In folgenden Beispielen ziehe ich TeamViewer heran. $ sudo apt update Hit:1 http:\/\/linux.teamviewer.com\/deb stable InRelease (&#8230;) Err:1 http:\/\/linux.teamviewer.com\/deb stable InRelease The [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[2,5,14],"tags":[],"class_list":["post-6316","post","type-post","status-publish","format-standard","hentry","category-computer","category-linux","category-ubuntu_and_derivates"],"_links":{"self":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/comments?post=6316"}],"version-history":[{"count":2,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6316\/revisions"}],"predecessor-version":[{"id":6328,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/posts\/6316\/revisions\/6328"}],"wp:attachment":[{"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/media?parent=6316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/categories?post=6316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/axebase.net\/blog\/wp-json\/wp\/v2\/tags?post=6316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}