手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

kinit(1)

名称

kinit - 获取和缓存 Kerberos 票证授予票证 (ticket-granting ticket)

用法概要

/usr/bin/kinit [-ARvV] [-p | -P] [-f | -F] [-a] [-c cache_name] 
     [-C] [-E] [-k [-t keytab_file]] [-l lifetime]
     [-r renewable_life] [-s start_time] [-n] [-S service_name]
     [-X attribute[=value]] [-T armor_ccache] [principal]

描述

kinit 命令用于获取和缓存 principal 的初始票证授予票证(凭证)。此票证用于 Kerberos 系统进行验证。只有拥有 Kerberos 主体的用户才可以使用 Kerberos 系统。有关 Kerberos 主体的信息,请参见 kerberos(5)

当使用 kinit 而未指定选项时,实用程序将提示您输入 principal 和 Kerberos 口令,并尝试使用本地 Kerberos 服务器验证您的登录。如果需要,可以在命令行上指定 principal

如果登录尝试通过了 Kerberos 的验证,kinit 将检索您的初始票证授予票证并将其放到票证高速缓存中。缺省情况下,票证存储在 /tmp/krb5cc_uid 文件中,其中 uid 表示用户标识号。票证将在指定的生命周期后过期,之后必须再次运行 kinit。高速缓存中的任何现有内容都将被 kinit 销毁。

对于 lifetimerenewable_life,在命令行中指定的值将覆盖在 Kerberos 配置文件中指定的值。

kdestroy(1) 命令可用于在结束登录会话之前销毁任何活动票证。

选项

支持以下选项:

–a

请求具有本地地址的票证。

–A

请求无地址的票证。

–c cache_name

使用 cache_name 作为凭证(票证)高速缓存名称和位置。如果未使用此选项,将使用缺省高速缓存名称和位置。

–C

请求标准化主体名称。

–E

将主体名称视为企业名称。

–f

请求可转发票证。

–F

不可转发。请求不可转发票证。

在一个主机上获取的票证通常不可在其他主机上使用。客户机可以请求将票证标记为可转发。在票证上设置 TKT_FLG_FORWARDABLE 标志后,用户可以使用此票证来请求具有其他 IP 地址的新票证。这样,用户可以使用当前凭证来获取在其他计算机上有效的凭证。此选项允许用户显式获取不可转发票证。

–k [–t keytab_file]

请求从本地主机的 keytab 文件中的密钥获取主机票证。可使用 –t keytab_file 选项来指定 keytab 文件的名称和位置。否则,将使用缺省名称和位置。

–l lifetime

请求生命周期为 lifetime 的票证。如果不指定 –l 选项,将使用缺省票证生命周期(由各个站点配置)。如果指定的生命周期大于最大票证生命周期(由各个站点配置),则会将票证的生命周期设置为最大生命周期。有关可以为 lifetime 指定的有效持续时间格式,请参见“时间格式”部分。有关 getprinc 命令如何验证服务器主体的生命周期值,请参见 kdc.conf(4)kadmin(1M)

返回的票证生命周期是下列值中的最小值:

  • 在命令行上指定的值。

  • 在 KDC 配置文件中指定的值。

  • 在 Kerberos 数据库中为服务器主体指定的值。对 kinit 而言,该值是 krbtgt/realm name

  • 在 Kerberos 数据库中为用户主体指定的值。

–n

请求匿名处理。

支持两种匿名主体类型。对于完全匿名 Kerberos,需要在 KDC 上配置 pkinit 并在客户机的 krb5.conf 中配置 pkinit_anchors。然后使用 –n 选项并以 @REALM 形式(空主体名称后跟有 @ 符号和领域名称)指定主体。如果 KDC 允许,将返回匿名票证。

此外还支持另一种形式的匿名票证。这类公开领域的票证隐藏客户机身份但不隐藏客户机领域。对于此模式,请使用 kinit -n 并以常规形式指定主体名称。如果 KDC 支持,将用匿名主体替换主体(但不替换领域)。自发行版 1.8 起,MIT Kerberos KDC 仅支持完全匿名操作。

–p

请求可代理票证。

–P

不可代理。请求不可代理票证。

可代理票证是这样一种票证:它允许您为服务获取一个 IP 地址与票证授权票证的 IP 地址不同的票证。此选项允许用户显式获取不可代理票证。

–r renewable_life

请求总生命周期为 renewable_life 的可更新票证。有关可以为 renewable_life 指定的有效持续时间格式,请参见“时间格式”部分。有关 getprinc 命令如何验证服务器主体的生命周期值,请参见 kdc.conf(4)kadmin(1M)

为票证返回的可更新生命周期是下列值中的最小值:

  • 在命令行上指定的值。

  • 在 KDC 配置文件中指定的值。

  • 在 Kerberos 数据库中为服务器主体指定的值。对 kinit 而言,该值是 krbtgt/realm name

  • 在 Kerberos 数据库中为用户主体指定的值。

–R

请求更新票证授予票证。请注意,过期票证即使仍在可更新生命周期内也无法更新。

–s start_time

请求以后生效的票证,该票证从 start_time 开始生效。以后生效的票证是在设有 invalid 标志的情况下发出的,并且在使用前需要馈送回 KDC。有关可以为 start_time 设置的有效绝对时间或持续时间格式,请参见“时间格式”部分。kinit 首先尝试匹配绝对时间,然后再尝试匹配持续时间。

–S service_name

指定在获取初始票证时使用的备用服务名。

–T armor_ccache

如果 KDC 支持,指定已包含票证的凭证高速缓存 (ccache) 的名称。此 ccache 用于封装请求,这样攻击者必须同时拥有封装票证的密钥和用于验证的主体的密钥才能攻击请求。

封装还可以确保来自 KDC 的响应在传输过程中不会被修改。

–v

请求将高速缓存中的票证授权票证(设置了 invalid 标志)传递到 KDC 进行验证。如果票证处于其请求的时间范围内,将使用通过验证的票证来替换高速缓存中的内容。

–V

详细输出。向用户显示更多信息,例如确认验证和版本。

–X attribute[=value]

指定要传递给预验证插件的预验证属性和值。可接受的 attributevalue 值因预验证插件而异。可以多次指定此选项以指定多个属性。如果未指定值,则假定为 yes

OpenSSL pkinit 预验证机制可识别下列属性:

X509_user_identity=URI

指定到何处查找用户的 X509 身份信息。

有效的 URI 类型为 FILEDIRPKCS11PKCS12ENV。有关详细信息,请参见“PKINIT URI 类型”部分。

X509_anchors=URI

指定到何处查找可信 X509 锚信息。

有效的 URI 类型为 FILEDIR。有关详细信息,请参见“PKINIT URI 类型”部分。

flag_RSA_PROTOCOL[=yes]

指定使用 RSA 而不是缺省的 Diffie-Hellman 协议。

PKINIT URI 类型

FILE:file-name[,key-file-name]

此选项的行为特定于上下文。

X509_user_identity

file-name 指定包含用户证书的 PEM 格式文件的名称。如果未指定 key-file-name,则认为用户的私钥也在 file-name 中。否则,将使用 key-file-name 作为包含私钥的文件的名称。

X509_anchors

file-name 被认为是 OpenSSL 式 ca-bundle 文件的名称。ca-bundle 文件应采用 base-64 编码。

DIR:directory-name

此选项的行为特定于上下文。

X509_user_identity

directory-name 指定包含名为 *.crt*.key 的文件的目录,其中文件名的第一部分是相同的,以便成对匹配证书和私钥文件。如果找到文件名以 .crt 结尾的文件,则假定以 .key 结尾的匹配文件中包含私钥。如果找不到这类文件,则不使用 .crt 文件中的证书。

X509_anchors

directory-name 被认为是 OpenSSL 式散列 CA 目录,其中每个 CA 证书都存储在一个名为 hash-of-ca-cert.# 的文件中。建议使用此基础结构,但这样会检查目录中的所有文件,如果其中包含证书(PEM 格式),则使用相应的文件。

PKCS12:pkcs12-file-name

pkcs12-file-name 是包含用户证书和私钥的 PKCS #12 格式文件的名称。

PKCS11:[slotid=slot-id][:token=token-label][:certid=cert-id][:certlabel=cert-label]

所有关键字和值都是可选的。PKCS11 模块(例如 opensc-pkcs11.so)必须安装为 libpkcs11(3LIB) 下的加密提供程序。可以指定 slotid= 和/或 token= 以强制使用特定智能卡读取器或令牌(如果有多个可用)。可以指定 certid= 和/或 certlabel= 以强制选择设备上的特定证书。有关选择特定证书供 pkinit 使用的更多方法,请参见 pkinit_cert_match 配置选项。

ENV:environment-variable-name

environment-variable-name 指定环境变量的名称,其值已设置为与以前的某个值相符合。例如 ENV:X509_PROXY,其中环境变量 X509_PROXY 已设置为 FILE:/tmp/my_proxy.pem

时间格式

下列绝对时间格式可用于 –s start_time 选项。这些示例中的日期和时间为 1999 年 7 月 2 日 1:35:30 p.m。

绝对时间格式
示例
yymmddhhmm[ss]
990702133530
hhmm[ss]
133530
yy.mm.dd.hh.mm.ss
99:07:02:13:35:30
hh:mm[:ss]
13:35:30
ldate:ltime
07-07-99:13:35:30
dd-month-yyyy:hh:mm[:ss]
02-july-1999:13:35:30

Variable   
变量
说明
dd
hh
时(24 小时制)
mm
ss
yy
一个世纪内的年份(0-68 表示 2000 至 2068;69-99 表示 1969 至 1999)
yyyy
年份(包括世纪)
month
语言环境的月份名称的全称或缩写。
ldate
语言环境的相应日期表示形式
ltime
语言环境的相应时间表示形式

下列持续时间格式可用于 –l lifetime–r renewable_life–s start_time 选项。这些示例中的持续时间为 14 天 7 小时 5 分 30 秒。

持续时间格式
示例
#d
14d
#h
7h
#m
5m
#s
30s
#d#h#m#s
14d7h5m30s
#h#m[#s]
7h5m30s
days-hh:mm:ss
14-07:05:30
hours:mm[:ss]
7:05:30
分隔符
说明
d
天数
h
小时数
m
分钟数
s
秒数
变量
说明
#
数字
days
天数
hours
小时数
hh
时(24 小时制)
mm
ss

环境变量

kinit 使用以下环境变量:

KRB5CCNAME

凭证(票证)高速缓存的位置。有关语法和详细信息,请参见 krb5envvar(5)

文件

/tmp/krb5cc_uid

缺省凭证高速缓存(uid 是用户的十进制 UID)。

/etc/krb5/krb5.keytab

本地主机的 keytab 文件的缺省位置。

/etc/krb5/krb5.conf

本地主机的配置文件的缺省位置。请参见 krb5.conf(4)

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
service/security/kerberos-5
接口稳定性
请参见下文。

命令参数是 "Committed"(已确定)。命令输出是 "Uncommitted"(未确定)。

另请参见

kdestroy(1)klist(1)kadmin(1M)ktkt_warnd(1M)libpkcs11(3LIB)kdc.conf(4)krb5.conf(4)attributes(5)kerberos(5)krb5envvar(5)pam_krb5(5)

附注

如果成功,kinit 将在初始凭证(票证授予票证)即将过期时通知 ktkt_warnd(1M) 去警告用户。