Kerberos: een tragikomedie

Prelude: Vandaag een update uitgevoerd van Fedora 25 naar Fedora 26, en alles ging goed. Alles? Neen, niet alles. Kerberos bleef weerstand bieden aan de overweldigers. Alles is geconfigureerd om via Kerberos en SSH passwordless te kunnen inloggen op het serverpark, maar SSH weigerde koppig dienst.

Confrontatie: De eerste foutmelding leek te wijzen naar het ontbreken van /etc/krb5.keytab (Server not found in Kerberos database). En inderdaad, het vermaledijde bestand was niet aanwezig. Helaas is het niet zo eenvoudig (“onmogelijk”) om te vinden hoe je dat bestand moet aanmaken. Wel wat er moet instaan, maar niet hoe je het moet maken. Ik bespaar u de details, als het /etc/krb5.conf-bestand hetzelfde is als toen het nog werkte, dan moet het zo (ktutil: moet je niet overtypen):

ktutil
ktutil: addent -password -p [email protected] -k 1 -e RC4-HMAC
ktutil: wkt /etc/krb5.keytab
ktutil: q

kinit [email protected]

Catharsis: En toch bleef het probleem bestaan. De ontbrekende keytab was dus niet het probleem. Na het raadplegen van een orakel bleek het probleem, zoals altijd, DNS. Ik gebruik korte hostnames om in te loggen (i.e. web1 ipv. web1.dc.helptux.be), maar Kerberos verwacht lange hostnames. Je kan dat oplossen door altijd ssh web1.dc.helptux.be te gebruiken, maar dat was vroeger niet nodig, en dus gaan we dat ook nu niet zo doen. Gelukkig is er in /etc/krb5.conf een instelling die het probleem oplost: dns_canonicalize_hostname. Dit staat standaard op true, maar om onbekende redenen stond het op false. Een kleine aanpassing later werkte alles terug. Zeus zij geprezen!

dns_canonicalize_hostname = true