我正在尝试设置一个简单的Kerberos环境,在这个环境中,客户端服务器通过Kerberos服务器对Web服务进行身份validation(在我的情况下是OpenSSH)。
我在KDC上生成了一个keytab文件,但是我不太确定哪个服务器复制文件。 我只需要将其复制到提供服务的机器上,或者也要复制到想要对服务进行身份validation的客户机上?
在正常情况下,您创build的密钥表文件(通常使用服务帐户主体(或实例),例如ssh / hostname) 应放置在该 kerberos服务的“客户端”上。
并且在这个客户端上, 你将使用这个keytab(caching账户凭证)来对你的服务进行KDCvalidation ,使用类似这样的命令(在服务的情况下,这通常由服务完成,在其代码中通过脚本,在启动时):
kinit -kt /path/to/keytab.file principal/name
keytabs以某种方式包含您的帐户(或服务帐户)凭据(例如主体和密码),以便您不必手动进行身份validation,但可以使用此密钥表自动执行此操作(并且密钥表应该具有严格的权限,
希望有所帮助
注意:KDC也使用keytabs,注意不要把这个keytab上传到你的客户端! 它包含KDC / kadmin信息!
要确保您使用的是正确的,您可以使用kadmin从客户端连接到您的KDC,并从那里创buildkeytab,例如:
client$ kadmin -p your_admin_login/admin # login to the KDC client$ kadmin> ktadd -kt /path/to/keytab.keytab <principal_name> # generate a keytab locally for account principal_name client$ kadmin> exit client$ kinit -kt /path/to/keytab.keytab <principal_name> # test it client$ <configure the keytab path in your app>
问候,