KRB5KDC(8)
π KRB5KDC(8) β the krb5kdc manual, bestie edition π
okay so welcome to the krb5kdc(8) page, part of the MIT Kerberos manual set π if you're here you're probably trying to run a KDC, which is honestly main character energy β you're literally the authentication backbone of an entire realm. no pressure bestie β¨
β¨ NAME β¨
krb5kdc β Kerberos V5 KDC π
πΈ SYNOPSIS πΈ
krb5kdc [-x db_args] [-d dbname] [-k keytype] [-M mkeyname] [-p portnum]
[-m] [-r realm] [-n] [-w numworkers] [-P pid_file] [-T time_offset]
π DESCRIPTION π
krb5kdc is the Kerberos version 5 Authentication Service and Key Distribution Center β aka the AS/KDC. it is the vibe. it is where tickets are born ποΈβ¨
π OPTIONS π
so here's every single flag, no skips, we're not doing that here π«Ά
-rrealm β says which realm the server should be out here providing service for. you can drop this option multiple times to serve multiple realms, because why serve one when you can serve many. if you don't give a-rat all, the default realm (the one specified inkrb5.conf) gets served. slay by default π-ddbname β names the principal database so the KDC can find it. heads up tho: this option does not apply to the LDAP database. not applicable. no cap π-kkeytype β sets the key type of the master key that you type in manually as a password when-mis given. the default isaes256-cts-hmac-sha1-96. that's the moment, that's the default π-Mmkeyname β the principal name for the master key in the database (usuallyK/Min the KDC's realm). iconic name fr fr β¨-mβ says the master database password should be fetched from the keyboard instead of from a stash file. yes bestie you're typing it in yourself, live, with your own hands π-nβ tells the KDC to not put itself in the background and to not disassociate itself from the terminal. it stays right there with you. clingy in a cute way π«Ά-Ppid_file β tells the KDC to write its PID into pid_file after it starts up. this is how you check whether the KDC is still alive, and how init scripts stop the correct process β not some random imposter π-pportnum β the default UDP and TCP port numbers the KDC should listen on for Kerberos version 5 requests, given as a comma-separated list. this value overrides the port numbers in the[kdcdefaults]section ofkdc.conf, but realm-specific values can override it. and if literally no value comes from anywhere at all, the default port is88. periodt π-wnumworkers β tells the KDC to fork numworkers processes so they can listen on the KDC ports and process requests in parallel (multitasking queen behavior π ). the top level KDC process β the one whose pid gets recorded in the pid file if-Pis also given β acts as a supervisor. the supervisor relaysSIGHUPsignals to the worker subprocesses, and will terminate the worker subprocess if it is itself terminated or if any other worker process exits. that's the rule, that's the structure π₯-xdb_args β database-specific arguments. see Database Options inkadminfor the supported arguments. go look, bestie π-Toffset β a time offset in seconds that the KDC will operate under. > β οΈ it is intended only for testing purposes. do not make this your whole personality in prod. π
π¦ EXAMPLE π¦
the KDC may service requests for multiple realms β maximum 32 realms. the realms are listed on the command line. per-realm options specified on the command line pertain for each realm that follows it, and get superseded by subsequent definitions of that same option. so order matters, keep up π
for example:
krb5kdc -p 2001 -r REALM1 -p 2002 -r REALM2 -r REALM3
this specifies that the KDC listens on port 2001 for REALM1, and on port 2002 for REALM2 and REALM3. see how REALM2 and REALM3 share? that's the follow-the-leader rule in action β¨
additionally, per-realm parameters may be specified in the kdc.conf file. the location of this file may be specified by the KRB5_KDC_PROFILE environment variable. and here's the tea π΅: per-realm parameters specified in this file take precedence over options specified on the command line. see the kdc.conf description for further details.
π ENVIRONMENT π
see kerberos for a description of Kerberos environment variables π
as of release 1.22, krb5kdc supports systemd socket activation via the LISTEN_PID and LISTEN_FDS environment variables. sockets provided by the caller must correspond to configured listener addresses (via the kdc_listen variable or equivalent) or they will be ignored. and any configured listener addresses that do not correspond to caller-provided sockets will be ignored if socket activation is used. so likeβ¦ matching matters. vibe check your sockets π§
π SEE ALSO π
kdb5_util, kdc.conf, krb5.conf, kdb5_ldap_util, kerberos β go read them, they're all part of the family π«Ά
β AUTHOR β
MIT π
π COPYRIGHT π
1985-2026, MIT
okay that's the whole page bestie, you ate that π
β¨ sending you off with the deets: this was krb5kdc(8) from the MIT Kerberos manual, version 1.22.2, brought to you by MIT π go forth and issue some tickets, you've got this fr fr ππ¦
π¦ where this page comes from
- alpine 3.24: krb5-doc 1.22.2-r1 Β· MIT
- arch rolling: krb5 1.22.2-1 Β· custom
- fedora 43: krb5-server 1.22.2-4.fc43 Β· Brian-Gladman-2-Clause AND BSD-2-Clause AND (BSD-2-Clause OR GPL-2.0-or-later) AND BSD-2-Clause-first-lines AND BSD-3-Clause AND BSD-4-Clause AND CMU-Mach-nodoc AND FSFULLRWD AND HPND AND HPND-export2-US AND HPND-export-US AND HPND-export-US-acknowledgement AND HPND-export-US-modify AND ISC AND MIT AND MIT-CMU AND OLDAP-2.8 AND OpenVision
- freebsd 15.1: base 15.1
- nixos 26.05: krb5 1.22.2
- nixpkgs unstable: krb5 1.22.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms