Ältere HP-Switches (ProCurve) „Unable to negotiate with <DEVICE> port 22: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1“

Ältere HP Switches oder andere embedded-Systeme sprechen schon mal kein aktuelles SSH und aus Sicherheitsgründen lehnt der Default SSH-Client die Verbindung ab. Es gibt eine ganze Menge Key-Exchange-Methoden, die mittlerweile veraltet sind oder als unsicher gelten.

Der entscheidende Teil ist dabei der Letzte, der Angibt, welche Verfahren der Server anbietet:

Unable to negotiate with SWITCH.EXAMPLE.COM port 22: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1

Denn man muss seinem SSH-Client nur noch beibringen, dass dieser das für diese Verbindung akzeptieren soll.

Lösung

SSH versteht mit dem Parameter -o die „optionalen“ Verfahren für die Verbindung:

ssh -o KexAlgorithms=diffe-hellman-group14-sha1 [email protected]

Je nach Switch (=SSH-Server) einfach das passende Verfahren benennen, fertig.

Passiert das häufiger, also verbindet man sich öfter mit diesem Gerät, kann (sollte) man die passende Konfiguration in seine ~/.ssh/config eintragen:

Host SWITCH.EXAMPLE.COM
    Ciphers 3des-cbc
    KexAlgorithms +diffie-hellman-group14-sha1
    User administrator

Windows Update Fehler 0x800F0986 bei Cummulativem Update

Bei der Installation des aktuellen CU auf einem Windows Server 2019 weigerte sich Windows Update beharrlich, das Setup erfolgreich abzuschließen. Schuld war der hilfreich benannte Fehler „0x800F0986„.

Die Fehlernummer 0x800F0986 steht lauf MSEC für, ebenfalls wenig hilfreich, „Corrupted or missing system files“.

Lösung

In diesem Fall hat geholfen:

  1. Microsoft Edge installieren (war noch nicht vorhanden)
  2. Ausführen, „Als Administrator“ – wobei \\SERVERNAME\ eine „gesunde“, also erfolgreich gepatchte Maschine war:
    DISM.exe /Online /Cleanup-Image /RestoreHealth /Source:\\SERVERNAME.EXAMPLE.TLD\C$\Windows
  3. Reboot

Danach wurde auch KB5041578 ganz ohne Fehler installiert. Was den Effekt ausgelöst hat werden wir (hoffentlich) nie erfahren.

Wer kommt auf sowas? GDI-fix im 7-Zip Changelog

Manchmal fragt man sich, wer auf sowas stößt. Und das auch noch kompetent debuggt 🤔

Frisch aus dem aktuellen 7-Zip 24.08 Changelog:

[…] there was a leak of GDI objects (internal resources in Windows) in „Confirm File Replace“ window, causing problems after 1600 displays of „Confirm File Replace“ window from same running 7-Zip process.

In meinem Kopf entsteht dazu ein Bild von einem total frustrierten Furry, dem sich die flauschigen Nackenhaare aufstellen, weil das Backup der Manga-Sammlung nicht vernünftig zippt – und bei der Eintausendsechshundertundersten Meldung das 7-Zip GUi crasht.

Schön, das das endlich gefixt ist 😀

Windows Hello (PIN/Biometrie) für Benutzer vollständig zurücksetzen

Manchmal geht Windows Hello kaputt. Windows Hello verwaltet die Computerlokale Komfort-Anmeldung mit „einfachen“ PINs, Fingerabdrücken, der Gesichtserkennung und so weiter. Grundsätzlich eine nette Erfindung, welche Anmeldung an Windows etwas komfortabler macht.

Es gibt Momente, in denen das kaputtgeht. Zum Beispiel wenn sich in der Domäne (AD/AAD) die PIN-Richtlinien ändern oder sich zwei Profile widersprechen.

Die Fehlermeldungen sind leider wenig zielführend. Wir haben die Meldung „Diese Option ist derzeit nicht verfügbar“ nach der PIN-Eingabe gesehen, die Fehlernummer 0x801c0451 beim Versuch die PIN zurückzusetzen und verschiedene Fehler nach einer Biometrischen Anmeldung.

Lösung

Die einfachste Möglichkeit ist, Windows Hello radikal zurückzusetzen und sauber neu zu konfigurieren. Das geht am einfachsten, indem man den Zertifikatsspeicher von Hello vollständig zu entfernt:

Certutil -DeleteHelloContainer 

Das muss im Kontext des betroffenen Benutzers passieren. Bei einer defekten Windows-Anmeldung tut es auch ein angemeldeter Administrator, der die Shell „Als Benutzer“ ausführt. Nach dem Reboot kann man Hello dann neu einrichten, als hätte es das vorher nicht gegeben.

Windows VPN Fehler „Ein interner Authentifizierungsfehler ist aufgetreten“

Heute habe ich (viel zu lange) an einem interessanten Fehler herumgesucht.

Eine benutzende Person konnte sich nach einem (korrekten) Kennwortwechsel nicht mehr per VPN einwählen. Die Domänen-Anmeldung funktioniert aber, PC-Zugriff kein Problem, Dateiserver, Microsoft 365, ERP … alles mit dem neuen Kennwort kein Problem. Einzig die VPN-Einwahl funktioniert nicht mehr:

Im Ereignisprotokoll des Clients (der Server protokolliert gar nichts – auch im IASLog nicht) tauch diese Meldung „645“ von RasClient (Ereignis-ID: 20227) auf:

CoID={EE17AD36-00AF-4D2E-B293-A43EFD0E0DBA}: Der Benutzer "<NAME>" hat eine Verbindung mit dem Namen "<VERBINDUNG>" gewählt, die Verbindung konnte jedoch nicht hergestellt werden. Der durch den Fehler zurückgegebene Ursachencode lautet: 645.

Lösung

Das neue Kennwort enthielt ein ganz bestimmtes Sonderzeichen: (Euro-Zeichen)

Windows NT4 ist schuld. Das konnte noch kein € (Euro-Zeichen). Ersetzt man das Zeichen geht’s sofort.

Details

In diesem VPN wird SSTP genutzt, also PPTP-over-TLS. Schnell, einfach, sicher, flexibel und sehr gut zu verwalten. Das bedeutet aber, dass die Authentifizierung CHAP (MSCHAPv2) nach RFC2759 nutzt. Und da gibt es schlichtweg nur ASCII im „Password“ Feld. Etwas anderes gab es 1999 unter NT4 noch nicht so richtig 🤪

Der Windows Client, NICHT der Server, prüft also die Kompatibilität mit der RFC und bricht bei der Nutzung von High-Characters sofort ab. Daher auch der interne Authentifizierungsfehler am Client.