Sonntag, 12. April 2015

Wenn Kali Linux den Schlüssel vergessen hat

Kali Linux kann sich vergesslich zeigen, wenn man es eine Zeitlang nicht benutzt. Wer wie ich sein Kali Linux eher nur für Security-Tests und es weniger für alltägliche Aufgaben verwendet, kann nach einer längeren Zeit der Inaktivität eine böse Überraschung erleben. Es kommt vor, dass mein Notebook, auf dem Kali Linux installiert ist, längere Zeit unbenutzt liegen bleibt, da ich zu Hause die meisten Dinge auf meinem Desktop erledige. Nachdem ich nach längerer Zeit wieder mein Notebook hochfuhr, mit dem Ziel ein Update anzustoßen, verweigerte sich mein sonst zuverlässiges System: Mein Kali Linux weigerte sich neue Software zu installieren. Auch ein Upgrade auf die kürzlich erschienene neueste Version von Kali wurde verweigert. Was war denn hier los?

Die Macher von Kali Linux verwenden (GPG-)Schlüssel, mit denen die heruntergeladene Software signiert wird. Diese Schlüssel haben nur eine begrenzte Gültigkeit. Nachdem die Schlüssel abgelaufen sind, lässt sich das Kali Linux zwar noch nutzen, aber es lässt sich keine neue Software mehr installieren. Alles was man noch zu sehen bekommt, sind ein paar Fehlermeldungen, garniert mit einem "Release: The following signatures were invalid: KEYEXPIRED [...]" - ich habe den Eindruck, dass die Macher von Kali etwas zu kurze Gültigkeitsdauern für die GPG-Schlüssel verwenden, aber Paranoia gehört ja auch zum Security-Geschäft. ;-)

Somit hat man ein Henne-Ei-Problem: Um die Schlüssel zu aktualisieren, müsste man die Softwareaktualisierung anschmeißen, aber die funktioniert ja mit den alten Schlüsseln nicht. Also ist man dazu verdammt auf den alten Schlüsseln sitzen zu bleiben und ein veraltetes Kali Linux zu verwenden? Oder gar die mühsam eingerichtete Installation zu löschen alles neu zu installieren? Mitnichten. Mit drei Kommandos auf der Shell ist das Problem gelöst:

sudo rm -rf /var/lib/apt/lists/
sudo apt-get update
apt-get install kali-archive-keyring

Danach sollte das System wie gewohnt wieder benutzbar sein und alle Software-Updates/Upgrades wieder möglich sein. Kurz zur Erörterung was diese drei Befehle bewirken:

Unter /var/lib/apt/lists/ liegen bei Debian-basierenden Linux-Systemen (so wie es Kali oder Ubuntu Linux auch welche sind) die Listen aller bekannten und installierbaren Software-Pakete. Jedes mal, wenn ein sudo apt-get update auf der Shell abgesetzt wird, holt sich das System von den Paketquellen die neuesten Listen der verfügbaren Software und legt diese dort ab. Da der abgelaufene GPG-Schlüssel nicht mehr zu den aktuellen Signaturen der Software-Pakete passt, klemmt nun das Software-Update. Also löschen wir mit einem beherzten sudo rm -rf /var/lib/apt/lists/ zunächst die Liste aller Software-Pakete.

Mit einem befreienden sudo apt-get update holen wir uns dann eine taufrische Liste der aktuellsten Software-Pakete. Da wo eben noch keine mehr da war, liegt jetzt eine hochaktuelle Liste mit den bei unseren Paketquellen verfügbaren Programmen.

Jetzt brauchen wir nur noch einen Türöffner für unser Problem, nämlich besagten GPG-Schlüssel, der uns wieder aktuelle und erlaubte Signaturen für unsere Softwareinstallationen ermöglicht. Den bekommen wir mit einem apt-get install kali-archive-keyring - fertig.

Möge diese Anleitung dem einen oder anderen Verzweifelten helfen und so vermeiden, daß ein vielleicht mühsam eingerichtetes System wieder platt gemacht werden muß.