登录时自动使用 Kerberos 连接到 NFS

登录时自动使用 Kerberos 连接到 NFS

我有一台服务器 Ubuntu 16.04,使用 Kerberos 安全性导出 NFS 共享。我有一个连接到服务器的笔记本电脑客户端 Ubuntu 17.10。客户端配置为使用 autofs 挂载共享。我在服务器上创建了一个密钥表并将其复制到客户端上。

我能够达到份额。然而,在笔记本电脑上登录后,它不会立即起作用;该目录已安装,但处于一种奇怪的状态,我实际上没有使用它的权限。

为了让它发挥作用,我必须做任何一件事

sudo service rpc-gssd restart

或者

kinit
[type in password when prompted]

在执行上述任一操作之后,我就可以成功浏览到已安装的共享。

这是预期的行为吗?如果没有,我该如何修复它?如果正常的话,有什么办法可以在网络出现时自动运行 kinit 吗?它通过 wifi 连接,因此网络在启动时无法立即可用,只有当用户登录并解锁密码密钥环时才可用。

感谢您的任何帮助。

更新

我发现,如果我在笔记本电脑物理插入网络时启动它,一切都会正常工作。我认为“pam”是一种无需手动获取票据即可使所有工作正常运行的机制,但如果我在登录时没有网络连接,pam 似乎无法工作。

答案1

问题是,使用 NetworkManager 时,登录时没有网络连接。 NetworkManager 有一个每个用户的 wifi 网络列表,并且在用户登录之前它不会登录网络。

解决方法是在网络设置中点击wifi网络上的“设置”按钮,将网络设置为“对所有用户可用”。

设置完成后,笔记本电脑将在启动时自动连接到 wifi。然后,当用户登录时,网络已经启动,自动 kerberos 票证魔法就可以发挥作用。

答案2

在您可以访问基于 Kerberos 的 NFS 共享之前,您必须拥有一张票证,否则就没有安全性。解决方案是在登录时将 kinit 放在 $HOME/.bash_login 或 $HOME/.bash_profile 上。heimdal 的 kinit 非常好,因为可以从 STDIN 获取传递

echo yourpass|kinit

相关内容