Strange behavior with mixed case host name/principal

Jafar Aliev tubecleaner at gmail.com
Fri Apr 18 12:41:53 EDT 2025


Good day.
My setup:
rhel-based distro
OpenSSH_8.9p1 sshd
kerberos-libs 1.20.1
sssd 2.8.2

Server joined the Windows AD via realm. Authentication from windows
client (putty 0.71) via password works well, but GSSAPI fails with
error (sshd logs):

No credentials were supplied, or the credentials were unavailable or
inaccessible\nNo key table entry found matching
host/SERVER.domain.local@

Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   4 SERVER$@DOMAIN.LOCAL
   4 SERVER$@DOMAIN.LOCAL
   4 host/SERVER at DOMAIN.LOCAL
   4 host/SERVER at DOMAIN.LOCAL
   4 host/SERVER.domain.local at DOMAIN.LOCAL
   4 host/SERVER.domain.local at DOMAIN.LOCAL
   4 RestrictedKrbHost/SERVER at DOMAIN.LOCAL
   4 RestrictedKrbHost/SERVER at DOMAIN.LOCAL
   4 RestrictedKrbHost/SERVER.domain.local at DOMAIN.LOCAL
   4 RestrictedKrbHost/SERVER.domain.local at DOMAIN.LOCAL

$hostname -f
SERVER.domain.local

$dig +short -x <IP>
SERVER.domain.local

krb5.conf
=======
includedir /etc/krb5.conf.d/
[libdefaults]
    dns_lookup_realm = false
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    rdns = false
    pkinit_anchors = FILE:/etc/pki/tls/certs/ca-bundle.crt
    spake_preauth_groups = edwards25519
    dns_canonicalize_hostname = fallback
    qualify_shortname = ""
    default_ccache_name = KEYRING:persistent:%{uid}
    default_keytab_name = FILE:/etc/krb5.keytab
[realms]
[domain_realm]

Workarounds with sshd_conf
GSSAPIStrictAcceptorCheck no
or krb5.conf
ignore_acceptor_hostname = true
work well, but I want to keep a strict hostname check.

Well, I have found if I using all-small case hostname all works well :

$hostname -f
server.domain.local

$dig +short -x <IP>
server.domain.local

Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   2 SERVER$@DOMAIN.LOCAL
   2 SERVER$@DOMAIN.LOCAL
   2 host/SERVER at DOMAIN.LOCAL
   2 host/SERVER at DOMAIN.LOCAL
   2 host/server.domain.local at DOMAIN.LOCAL
   2 host/server.domain.local at DOMAIN.LOCAL
   2 RestrictedKrbHost/SERVER at DOMAIN.LOCAL
   2 RestrictedKrbHost/SERVER at DOMAIN.LOCAL
   2 RestrictedKrbHost/server.domain.local at DOMAIN.LOCAL
   2 RestrictedKrbHost/server.domain.local at DOMAIN.LOCAL


Apr 18 19:37:54 server.domain.local sshd[51224]: Authorized to
jafar at domain.local, krb5 principal jafar at DOMAIN.LOCAL
(ssh_gssapi_krb5_cmdok)
Apr 18 19:37:55 server.domain.local sshd[51224]: Accepted
gssapi-with-mic for jafar at domain.local from 10.*.*.* port 57997 ssh2:
jafar at DOMAIN.LOCAL
Apr 18 19:37:55 server.domain.local sshd[51224]:
pam_unix(sshd:session): session opened for user
jafar at domain.local(uid=***) by (uid=0)


Is it predefined behavior or I don't understand something?


More information about the Kerberos mailing list