Tausendmal berührt ...
… tausendmal ist nichts passiert.
Ungezählte Male habe ich Debian-Updates eingespielt, die Dienste ggf. neu gestartet oder - nach Kernel-Updates - rebootet, und immer war alles gut. Da wird man schnell leichtsinnig … und dann ist irgendwann plötzlich nicht alles gut. Natürlich dann, wenn man abends vor dem Zubettgehen “noch eben schnell” ausstehende Updates eingespielt hat, was der Hobby-Admin eben so tut.
So geschehen demletzt auf einem recht alten, eigentlich schon lange im Ruhestand befindlichen Server, auf dem noch Debian Wheezy läuft, derzeit mit Debian Extend Long Time Support. Das Update betraf den SSH-Server - und früher habe ich immer vor dem Ausloggen geprüft, ob ich mich auch wieder einloggen kann. Bestimmt (fast) hundert Mal. Diesmal aber nicht.
Und prompt … bricht ein Verbindungsversuch sofort ab. Fühlt sich an wie “Port geschlossen, kein Dienst”. Mift. Eine serielle Konsole müsste ich extra temporär zubuchen.
Interessanterweise liefert ein Verbindungsversuch von einer anderen Adresse aus aber den Prompt des SSH-Servers. Nanu? Hat fail2ban für meine heimische IP-Adresse zugeschlagen? Also einen SSH-Private-Key auf Server 2 kopieren, von dort auf den kranken Server verbinden … geht. Allerdings liegt es nicht an einer Firewall; fail2ban hat keine IPs gesperrt und nicht getriggert. Komisch.
Das Logfile kann dann folgendes beisteuern:
fatal: xfree: NULL pointer given as argument [preauth]
Der Fehler scheint aber nur mit meinem heimischen Client (unter Windows) aufzutreten. Googeln hilft auf Anhieb - und unter Zeitdruck - nicht so wirklich weiter … also rollen wir das Update am besten einfach mal zurück. Glücklicherweise ist die Vorversion diejenige, die noch auf dem offiziellen Security-Mirror vorhanden ist. Es genügt also eine einfache Installation mit genauer Versionsangabe:
aptitude install openssh-server=1:6.0p1-4+deb7u7 openssh-client=1:6.0p1-4+deb7u7
Und danach wird diese Version dann “gepinnt”, um weitere Überraschungen zu vermeiden:
# cat /etc/apt/preferences.d/openssh
Package: openssh-server openssh-client
Pin: version 1:6.0p1-4+deb7u7
Pin-Priority: 1000
Und das war dann auch direkt eine wertvolle Erinnerung: lieber doch noch einmal testen, ob auch alles tut.
Mittlerweile gibt es dann auch ein fehlerfreies Update. Das kann man erst einmal probehalber einspielen:
aptitude install openssh-server=1:6.0p1-4+deb7u10 openssh-client=1:6.0p1-4+deb7u10
Dienst neu starten, SSH-Verbindung offen lassen (!) und neu verbinden. Tut.
Also kann der “Pin” weg:
# rm /etc/apt/preferences.d/openssh
Und jetzt ist wieder alles gut.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
Dirk Deimeke am :
In der Beziehung gefällt mir ein Feature von yum (RHEL/CentOS/Fedora) wirklich besser. Mit einem "yum history undo NUMMER" lässt sich die Aktion NUMMER wieder rückgängig machen.
Das klappt natürlich nur, wenn danach nicht mehr viel passiert ist.
How to use yum history to roll back an update in Red Hat Enterprise Linux 6 , 7?
Thomas Hochstein am :
Das ist eine wirklich praktische Lösung, ja. Gefällt.