我正在尝试使用 Kerberos 设置 NFSv4。服务器是 FreeBSD 13.0-RELEASE,客户端是 Ubuntu 20。我已运行 Kerberos 部分,并且可以自动为我的用户获取登录票证,并在通过 Kerberos 进行身份验证时通过 SSH 进入服务器。因此,我相信到目前为止我的 Kerberos 设置是正确的。
但是当我尝试挂载 NFSv4 共享时,我同时收到以下三个错误:
# mount -vvvv -t nfs4 -o sec=krb5 servidor:/ /mnt
mount.nfs4: timeout set for Tue Nov 2 00:54:36 2021
mount.nfs4: trying text-based options 'sec=krb5,vers=4.2,addr=10.42.42.2,clientaddr=10.42.42.119'
mount.nfs4: mount(2): Invalid argument
mount.nfs4: trying text-based options 'sec=krb5,vers=4.1,addr=10.42.42.2,clientaddr=10.42.42.119'
mount.nfs4: mount(2): Permission denied
mount.nfs4: trying text-based options 'sec=krb5,vers=4.1,addr=fe80::215:17ff:fe56:d754,clientaddr=::'
mount.nfs4: mount(2): Input/output error
mount.nfs4: mount system call failed
第一个错误是“无效参数”,最后一个是“输入/输出错误”。不确定如何调试这些错误。
“权限被拒绝”错误我不确定它是由于 Kerberos 还是其他原因造成的。
showmount -e servidor
显示导出存在(至少对于 NFSv3 而言)。这是我的导出文件:
/tera/shared -alldirs
/usr/home -alldirs
V4: /tera/shared -sec=krb5,krb5i
V4: /usr/home -sec=krb5,krb5i
据我了解,这应该将所有内容导出到 NFSv3 上的任何 IP 以及 NFSv4 的经过 kerberos 身份验证的客户端。
两台机器的密钥表中都有一个 nfs/hostname@REALM 密钥(也尝试过 nfs/hostname.fqdn@REALM 和 host/hostname@REALM 等)。