我在两个 raspbian buster 发行版上运行 NFSv4 服务器和客户端。我使用 Kerberos 来保护 NFS 共享。
在 NFS 客户端上,我使用 git 用户运行 gitea 服务,该服务在启动时启动。我想将 git 存储库存储在 NFS 共享上,因此 git 用户需要访问它。
当我登录到 git 用户并执行时,kinit
我可以毫无问题地访问共享。
有没有办法让 gitea 服务自动请求 Kerberos 票证并更新它,以便服务可以在没有我干预的情况下访问 NFS 共享?
我做了一些研究,心里有一些想法,但不确定实现它的最佳方法是什么。
- 我可以运行一个定期运行的 cron
kinit
。 - 这线谈论 SSSD(我以前不知道)
kinit
我可以手动进行初始设置很长的票证有效期但从安全角度来看这不是一个好的做法。
(我是 Kerberos 和 NFS 的新手,所以它们的配置可能不太好,但还是可以工作的)
谢谢 !
答案1
你基本上有两种选择:
- 运行一切根,因为 root 使用机器凭证,
- 创建一个客户端密钥表为您的用户。
为了使用第二种解决方案,您必须找到客户端密钥表的默认位置:
piotr@bialykiel:~$ krb5-config --defcktname
FILE:/etc/krb5/user/%{euid}/client.keytab
并使用以下命令创建密钥表kadmin
:
ktadd -k /etc/krb5/user/1234/client.keytab [email protected]
每当GSS-API
应用程序rpc.gssd将无法访问您的凭证缓存,它将使用 keytab 创建一个新的。
答案2
答案“客户端密钥表”是正确的。但我无法单独完成这项工作。但使用 gssproxy 后,它就变得非常好用。请参阅https://github.com/gssapi/gssproxy/blob/main/docs/NFS.md了解详情。