kinit相关命令(转发)

原文:

kinit相关命令

Kerberos 常用命令

Kerberos 常用命令

Kerberos常用命令笔记

Kerberos常用命令

Kerberos 命令

 

生成keytab后,使用该文件认证

认证的命令如下:

kinit -kt /xxx/xxx.keytab xxx@xxx.xxx.com 认证后,kerberos就给这个用户一个有效期,用klist命令可以看到这个有效期 klist -kt /xxx/xxx.keytab


可以用chmod给其他用户加上r权限,这样其他用户也能使用这个keytab文件

配合svn命令一起用,在有效期内就不需要每次都去输入密码,可以写在python文件里,去执行命令, 比如用脚本执行svn指令自动更新这种应用场景。

kinit -kt /xxx/xxx.keytab xxx@xxx.xxx.com;svn up



 
 
 

Ticket 管理

Kerberos Ticket的若干属性:

  • forwardable 简单来讲,KDC可以基于该类型TGT发放新的TGT,即使 network address不同。这样不需要再次输入密码。
  • proxiable 类似于forwardable,但是不同的是只允许service继承client的认证
  • proxy 
  • postdated 
  • Renewable 用户不需要重新输入密码就可以获得新的 session key. 但是这种TGT有过期时间。
  • invalid 
  • hardware authentication 申请使用硬件的Ticket认证
  • okay as delegate ticket指定的服务器可以用作delegate determined by the policy of that realm
  • anonymous ticket is one in which the named principal is a generic principal for that realm; it does not actually specify the individual that will be using the ticket. This ticket is meant only to securely distribute a session key.

用 kinit 获得Ticket

如果你的登录系统集成了Kerberos v5,那么登录时自动获得kerberos ticket. 否则,必须显示获取,比如用 kinit。类似,如果 ticket过期了,kinit可以申请新的ticket. 

By default, kinit假设你想要与自己名字相同并加上default realm的pricipal的ticket。

shell% kinit
Password for jennifer@ATHENA.MIT.EDU: <-- [Type jennifer‘s password here.]
shell%

如果想要申请 forwardable ticket,可以

shell% kinit -f
Password for jennifer@ATHENA.MIT.EDU: <-- [Type your password here.]
shell%
shell% kinit -f -l 3h david@EXAMPLE.COM
Password for david@EXAMPLE.COM: <-- [Type david‘s password here.]
shell%

用 klist 查看 ticket

当你第一次获得 ticket, 那么只能是TGT,看起来如下:

shell% klist
Ticket cache: /tmp/krb5cc_ttypa
Default principal: jennifer@ATHENA.MIT.EDU

Valid starting     Expires            Service principal
06/07/04 19:49:21  06/08/04 05:49:19  krbtgt/ATHENA.MIT.EDU@ATHENA.MIT.EDU
shell%

如果连接到其他机器上,比如:daffodil.mit.edu,但是在同一个realm,klist会得到

shell% klist
Ticket cache: /tmp/krb5cc_ttypa
Default principal: jennifer@ATHENA.MIT.EDU

Valid starting     Expires            Service principal
06/07/04 19:49:21  06/08/04 05:49:19  krbtgt/ATHENA.MIT.EDU@ATHENA.MIT.EDU
06/07/04 20:22:30  06/08/04 05:49:19  host/daffodil.mit.edu@ATHENA.MIT.EDU
shell%

当jennifer用ssh程序登陆主机daffodil.mit.edu,ssh程序将jennifer的TGT给KDC,并请求主机ticket,这样jennifer不用再输入密码。

klist有各种flag,具体可以通过 man klist 查看。

用 kdestory 销毁ticket. 

由于ticket可能被偷走,这样离开机器的时候可以顺便销毁ticket.

shell% kdestroy
shell%

其他命令

 

增加用户,带随机密码的

sudo /usr/sbin/kadmin.local -q 'addprinc -randkey kafka/10.211.55.5@EXAMPLE.COM'
sudo /usr/sbin/kadmin.local -q 'addprinc -randkey zookeeper/127.0.0.1@EXAMPLE.COM'

添加到密钥库

sudo /usr/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kafka.keytab kafka/10.211.55.5@EXAMPLE.COM”
sudo /usr/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kafka.keytab kafka/weiwei@EXAMPLE.COM’
sudo /usr/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kafka.keytab zookeeper/10.211.55.5@EXAMPLE.COM”
sudo /usr/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kafka.keytab zookeeper/127.0.0.1@EXAMPLE.COM”
sudo /usr/sbin/kadmin.local -q "ktadd -k /var/kerberos/krb5kdc/kafka.keytab clients@EXAMPLE.COM”

查看数据库密钥

klist -t -e -k /var/kerberos/krb5kdc/kafka.keytab

查看方式2

ktutil
rkt /var/kerberos/krb5kdc/kafka.keytab

初始化密钥

kinit -kt /var/kerberos/krb5kdc/kafka.keytab kafka/10.211.55.5@EXAMPLE.COM

启动kerberos

service krb5kdc restart
chkconfig krb5kdc on

启动kadmind

kadmind


进入kerberos 控制台

kadmin.local 
或 
kadmin

创建数据库

kdb5_util create -r HADOOP.COM -s

启动kdc服务

service krb5kdc start

启动kadmin服务

service kadmin start

修改当前密码

kpasswd

初始化princle

kinit -k -t /home/chen/cwd.keytab test@HADOOP.COM

通过keytab文件认证登录

kinit -kt /home/chen/cwd.keytab test@HADOOP.COM

查看keytab

klist -kt /home/chen/cwd.keytab 

清除缓存

kdestroy

生成随机key的principal

addprinc -randkey root/master@HADOOP.COM

生成指定key的principal

addprinc -pw **** admin/admin@HADOOP.COM

查看principal

listprincs

修改admin/admin的密码

cpw -pw xxxx admin/admin

添加/删除principle

addprinc/delprinc admin/admin

直接生成到keytab


ktadd -k /home/chen/cwd.keytab test@HADOOP.COM
xst -norandkey -k /home/chen/cwd.keytab test@HADOOP.COM 
#注意:在生成keytab文件时需要加参数”-norandkey”,否则会导致直接使用kinit test@HADOOP.COM初始化时会提示密码错误。

Kerberos 命令

本节列出了 Kerberos 产品中包含的部分命令。

表 27-2 Kerberos 命令

命令
说明
/usr/bin/ftp
文件传输协议程序
/usr/bin/kdestroy
销毁 Kerberos 票证
/usr/bin/kinit
获取并缓存 Kerberos 票证授予票证
/usr/bin/klist
显示当前的 Kerberos 票证
/usr/bin/kpasswd
更改 Kerberos 口令
/usr/bin/ktutil
管理 Kerberos 密钥表文件
/usr/bin/rcp
远程文件复制程序
/usr/bin/rdist
远程文件分发程序
/usr/bin/rlogin
远程登录程序
/usr/bin/rsh
远程 Shell 程序
/usr/bin/telnet
基于 Kerberos 的 telnet 程序
/usr/lib/krb5/kprop
Kerberos 数据库传播程序
/usr/sbin/gkadmin
Kerberos 数据库管理 GUI 程序,用于管理主体和策略
/usr/sbin/gsscred
管理 gsscred 表项
/usr/sbin/kadmin
远程 Kerberos 数据库管理程序(运行时需要进行 Kerberos 验证),用于管理主体、策略和密钥表文件
/usr/sbin/kadmin.local
本地 Kerberos 数据库管理程序(运行时无需进行 Kerberos 验证,并且必须在主 KDC 上运行),用于管理主体、策略和密钥表文件
/usr/sbin/kclient
Kerberos 客户机安装脚本,有无安装配置文件皆可使用
/usr/sbin/kdb5_ldap_util
为 Kerberos 数据库创建 LDAP 容器
/usr/sbin/kdb5_util
创建 Kerberos 数据库和存储文件
/usr/sbin/kgcmgr
配置 Kerberos 主 KDC 和从 KDC
/usr/sbin/kproplog
列出更新日志中更新项的摘要
 
 
 
 
 

 
 
 
原文地址:https://www.cnblogs.com/panpanwelcome/p/14201333.html