GPG-Keys automatisch in apt importieren

Wer mit Ubuntu/Kubuntu/Xubuntu/... arbeitet, kommt um die Benutzung des manchmal etwas widerspenstigen apt in all seinen Varianten (apt-get, apt-cache, ...) nicht herum – es sei denn, man entscheidet sich für das oftmals nicht weniger kryptische aptitude.

Ein nettes Feature von apt (und inzwischen eigentlich aller anderen package manager wie yast, portage, ...) ist, dass Pakete vor der Installation gegen einen oder mehrere kryptographische Hashes (meist MD5 und SHA1) getestet werden. Damit kann festgestellt werden, ob das Paket (möglicherweise mit finsteren Absichten) verändert wurde.

Zusätzlich baut apt auf die Signatur von Paketen durch die package maintainer: Auch diese Signatur ist natürlich kryptographisch gesichert und stellt sicher, dass das von apt downgeloadete Paket in dem Zustand vorliegt, in dem der Maintainer es released hat.

Und jetzt kommt der Knackpunkt bzw. die kleine Unbequemlichkeit: Damit eine solche Signatur überhaupt einen Wert hat, muss sie auch überprüft werden – und dazu benötigt man den public key des Signierenden, also im Falle von apt den public key des package maintainers, sonst gibt apt folgendes aus:

$ sudo apt-get update
Get:1 http://archive.canonical.com edgy-commercial Release.gpg
[191B]
Get:2 http://archive.czessi.net edgy Release.gpg [481B]
Hit http://archive.canonical.com edgy-commercial Release
Get:3 http://ubuntu.beryl-project.org edgy Release.gpg [191B]
Get:4 http://security.ubuntu.com edgy-security Release.gpg
[191B]
Get:5 http://mirror2.ubuntulinux.nl edgy-seveas Release.gpg
[307B]
[...]
W: GPG error: http://kubuntu.org edgy Release: The following
signatures couldn't be verified because the public key
is not available: NO_PUBKEY A506E6D4DD4D5088
W: GPG error: http://wine.budgetdedicated.com edgy
Release: The following signatures couldn't be verified
because the public key is not available: NO_PUBKEY
58403026387EE263
W: You may want to run apt-get update to correct these problems

Um diese lästige Meldung loszuwerden und gleichzeitig in den Genuss überprüfter Packages zu kommen, bietet sich das folgende kleine Skript an, dass die noch nicht importierten Keys (halb-)automatisch von einem Key-Server besorgt, in den lokalen GPG-Keyring und mittels apt-key auch nach apt importiert:

for KEY in "A506E6D4DD4D5088" "58403026387EE263";
do
  gpg --keyserver hkp://subkeys.pgp.net --recv-keys $KEY;
  gpg --export --armor $KEY | sudo apt-key add -;
done

Bei diesem Skript müssen am Beginn der for-Schleife die IDs der noch fehlenden Keys eingetragen werden. Nach dem Start fragt das Skript einmal nach dem User-Passwort, um das sudo in der dritten Zeile ausführen zu können; die folgenden Aufrufe sollten sich in der Standard-Konfiguration von Ubuntu, Kubuntu, Xubuntu, ... nicht noch einmal nach dem Passwort erkundigen, da ein erfolgreicher sudo-Aufruf für einige Zeit gecachet wird.

Wenn dieses Skript erfolgreich durchgelaufen ist, sollte es keine Probleme mit noch fehlenden Keys mehr geben – jedenfalls so lange nicht, bis man ein weiteres Repository zu seiner /etc/apt/sources.list hinzufügt.

Hausaufgabe für besonders Fleißige: :-D

Wer schreibt mir ein schönes Skript für sed, awk oder grep, dass aus der Ausgabe von apt-get die IDs der noch fehlenden public keys extrahiert und diese dann automatisch in das obige Skript eingibt?

Danke schon einmal … :-D

Ähnliche Artikel in diesem Blog:

Tags: , , , , ,

Eine Reaktion zu “GPG-Keys automatisch in apt importieren”

  1. A Jordan

    Hi,
    Thank you very much.
    Eine schnelle Lösung ist immer ein guter Weg. Würde gern von meinem Blog hierher verlinken, falls das erlaubt ist. Bitte um eine kurze Email.
    Vielen Dank
    A. Jordan

Einen Kommentar schreiben

Dieses Blog verwendet Textile für Textauszeichnungen. HTML wird nicht unterstützt.