我每天在我的服务器上看到下面的syslog条目一次或两次。此服务器使用Kerberos服务主体将文件备份到AFS空间:
Dec 6 04:01:06 myserver kernel: [3681180.757245] afs: Tokens for user of AFS id -1 for cell realm.example.com have expired (server 192.168.22.24)服务器正在运行Debian喘息64位。我能做些什么来追踪到底是什么导致了这条消息?
发布于 2014-05-10 18:58:48
出现-1 id的一个可能原因是,令牌大约在消息出现的同时被销毁。或者有人对令牌进行注销,或者(更可能的是)内核模块中的定期清洁进程注意到令牌过期并使其失效。id -1是标记被标记为无效的一种方式(这是openafs内核模块中'unixuser‘struct中的ViceId )。如果您总是在该消息中看到id -1,则不可能真正知道具体触发这些消息的是什么,除非当时运行的只有少数几个通过AFS身份验证的东西。
如果您还没有使用它,那么您应该使用k5start或k续期(在Debian中的包'kstart‘)和-t选项,以确保备份文件的进程具有访问AFS的未过期令牌。
但是,如果您使用的是k5start,由于-K选项工作方式中的一些边缘情况,仍然有可能使过期令牌的访问失败:http://permalink.gmane.org/gmane.comp.encryption.kerberos.general/18343。由于k5start with -K只保证其krb5票证在未来的2分钟内有效,因此可以获得未来有效期为2分钟或更短的krb5令牌。如果使用这些2分钟有效的令牌与AFS文件服务器联系,并且通信时间超过2分钟,则访问可能会因“令牌过期”而失败。或者,如果AFS服务主体的最大票证生存期小于TGT的最大票证生存期,那么AFS令牌可能会在票证到期之前过期,因此k5start会让它们过期。
通过使用-H选项和-K选项,可以通过增加保证的票证生存期来确保不会发生这种情况。只需将-H设置为比2分钟默认值更高的值;可能是30分钟或1小时。或者,您可以使用-a选项在每次k5start/krenew醒来时总是更新票证(这是我推荐的)。但是,对于最新发布的k5start版本,该段中的所有内容都是不可能的,因此要做到这一点,您需要等待k5start的新版本,或者从git构建它。
解决这一问题的另一种方法是不使用k5start,让您自己的脚本每小时运行一次类似于kinit -kt /path/to/keytab && aklog的脚本,与将文件备份到AFS的过程相同。
https://serverfault.com/questions/559936
复制相似问题