KINIT(1)
โจ KINIT(1) โ the MIT Kerberos one ๐
okay bestie, gather round, because this is the page that gets you your very first ticket in Kerberos-land and honestly? it's giving main character energy. this is kinit, from the MIT Kerberos crew. let's go ๐
๐ธ NAME ๐ธ
kinit โ obtain and cache Kerberos ticket-granting ticket. yes, that's the whole vibe. you ask, you receive, you cache. ๐
๐ฆ SYNOPSIS ๐ฆ
kinit [-V] [-l lifetime] [-s start_time] [-r renewable_life] [-p | -P]
[-f | -F] [-a] [-A] [-C] [-E] [-v] [-R] [-k [-i | -t keytab_file]] [-c
cache_name] [-n] [-S service_name] [-I input_ccache] [-T armor_ccache]
[-X attribute[=value]] [--request-pac | --no-request-pac] [principal]
like. look at all those little flags. so many little levers to pull. we love her for it ๐ซถ
๐ DESCRIPTION ๐
kinit obtains and caches an initial ticket-granting ticket for principal. no cap, that's literally the job.
if principal is absent, kinit chooses an appropriate principal name based on existing credential cache contents or the local username of the user invoking kinit. some options modify the choice of principal name โ so like, the flags can change who you end up being. identity is a construct, etc etc ๐
๐ OPTIONS ๐
one bullet per flag, no skipping, we're being thorough because that's the whole point of a manpage babes.
-Vโ display verbose output. she's chatty, she's telling you everything ๐ฌ-llifetime โ (Time duration string.) Requests a ticket with the lifetime lifetime.
For example, kinit -l 5:30 or kinit -l 5h30m.
If the -l option is not specified, the default ticket lifetime (configured by each site) is used. Specifying a ticket lifetime longer than the maximum ticket lifetime (configured by each site) will not override the configured maximum ticket lifetime. so like, you can ask for a million years, the site said no, and the site wins. periodt โ
-sstart_time โ (Time duration string.) Requests a postdated ticket. Postdated tickets are issued with the invalid flag set, and need to be resubmitted to the KDC for validation before use.
start_time specifies the duration of the delay before the ticket can become valid. it's a ticket that's not valid yet. she's in her waiting era ๐
-rrenewable_life โ (Time duration string.) Requests renewable tickets, with a total lifetime of renewable_life. renew her, she's earned it ๐ฅ-fโ requests forwardable tickets.-Fโ requests non-forwardable tickets.-pโ requests proxiable tickets.-Pโ requests non-proxiable tickets.-aโ requests tickets restricted to the host's local address[es].-Aโ requests tickets not restricted by address.-Cโ requests canonicalization of the principal name, and allows the KDC to reply with a different client principal from the one requested. plot twist incoming ๐ซ-Eโ treats the principal name as an enterprise name.-vโ requests that the ticket-granting ticket in the cache (with the invalid flag set) be passed to the KDC for validation. If the ticket is within its requested time range, the cache is replaced with the validated ticket. glow up arc โจ-Rโ requests renewal of the ticket-granting ticket. Note that an expired ticket cannot be renewed, even if the ticket is still within its renewable life.
Note that renewable tickets that have expired as reported by klist may sometimes be renewed using this option, because the KDC applies a grace period to account for client-KDC clock skew. See krb5.conf clockskew setting. so sometimes the expired one still works?? clock skew said "let her in" ๐ญ
-k [-i | -t keytab_file]โ requests a ticket, obtained from a key in the local host's keytab. The location of the keytab may be specified with the-tkeytab_file option, or with the-ioption to specify the use of the default client keytab; otherwise the default keytab will be used. By default, a host ticket for the local host is requested, but any principal may be specified. On a KDC, the special keytab locationKDB:can be used to indicate thatkinitshould open the KDC database and look up the key directly. This permits an administrator to obtain tickets as any principal that supports authentication based on the key. admin privileges are absolutely giving god mode ๐-nโ Requests anonymous processing. Two types of anonymous principals are supported.
For fully anonymous Kerberos, configure pkinit on the KDC and configure pkinit_anchors in the client's krb5.conf. Then use the -n option with a principal of the form @REALM (an empty principal name followed by the at-sign and a realm name). If permitted by the KDC, an anonymous ticket will be returned.
A second form of anonymous tickets is supported; these realm-exposed tickets hide the identity of the client but not the client's realm. For this mode, use kinit -n with a normal principal name. If supported by the KDC, the principal (but not realm) will be replaced by the anonymous principal.
As of release 1.8, the MIT Kerberos KDC only supports fully anonymous operation. so the second mode is like... a vibe from the past. still documented tho ๐ซก
-Iinput_ccache โ Specifies the name of a credentials cache that already contains a ticket. When obtaining that ticket, if information about how that ticket was obtained was also stored to the cache, that information will be used to affect how new credentials are obtained, including preselecting the same methods of authenticating to the KDC. she's taking notes from your last ticket, lowkey observant ๐-Tarmor_ccache โ Specifies the name of a credentials cache that already contains a ticket. If supported by the KDC, this cache will be used to armor the request, preventing offline dictionary attacks and allowing the use of additional preauthentication mechanisms. Armoring also makes sure that the response from the KDC is not modified in transit. armor?? literally armor. she's protected ๐ก๏ธ-ccache_name โ use cache_name as the Kerberos 5 credentials (ticket) cache location. If this option is not used, the default cache location is used.
The default cache location may vary between systems. If the KRB5CCNAME environment variable is set, its value is used to locate the default cache. If a principal name is specified and the type of the default cache supports a collection (such as the DIR type), an existing cache containing credentials for the principal is selected or a new one is created and becomes the new primary cache. Otherwise, any existing contents of the default cache are destroyed by kinit. โ ๏ธ DESTROYED. gone. bestie check your cache before you run this fr fr
-Sservice_name โ specify an alternate service name to use when getting initial tickets.-Xattribute[=value] โ specify a pre-authentication attribute and value to be interpreted by pre-authentication modules. The acceptable attribute and value values vary from module to module. This option may be specified multiple times to specify multiple attributes. If no value is specified, it is assumed to be"yes".
The following attributes are recognized by the PKINIT pre-authentication mechanism:
X509_user_identity=valueโ specify where to find user's X509 identity informationX509_anchors=valueโ specify where to find trusted X509 anchor informationdisable_freshness[=yes]โ disable sending freshness tokens (for testing purposes only)
not me flagging that disable_freshness is for testing purposes only. do not be out here disabling freshness in prod, i am begging ๐
--request-pac | --no-request-pacโ mutually exclusive. If--request-pacis set, ask the KDC to include a PAC in authdata; if--no-request-pacis set, ask the KDC not to include a PAC; if neither are set, the KDC will follow its default, which is typically is to include a PAC if doing so is supported. pick a lane, you literally cannot have both ๐
๐ ENVIRONMENT ๐
See kerberos for a description of Kerberos environment variables. (yes she's sending you to another page. the lore is deep, iykyk ๐ง)
๐ FILES ๐
FILE:/tmp/krb5cc_%{uid}โ default location of Kerberos 5 credentials cache. your little ticket home ๐FILE:/etc/krb5.keytabโ default location for the local host's keytab. ๐
๐ SEE ALSO ๐
klist, kdestroy, kerberos โ the whole friend group. klist shows you the tickets, kdestroy says bye to them, kerberos is the lore keeper ๐
๐ AUTHOR ๐
MIT ๐
โญ COPYRIGHT โญ
1985-2026, MIT
okay that's the whole page, you're fully caught up, go get that ticket bestie ๐
this was kinit(1) from MIT Kerberos, version 1.22.2, dated KINIT(1) โ thanks for reading, mwah ๐ซถโจ๐ธ
๐ฆ 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-workstation 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
- 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