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
列出更新日志中更新項的摘要
 
 
 
 
 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM