挂载 NFS 时 RPC 身份验证错误

挂载 NFS 时 RPC 身份验证错误

我正在尝试安装 NFS 驱动器,但收到 RPC 身份验证错误,原因是凭据太弱。

在服务器端(192.168.100.109),看起来 NFS 服务器和挂载守护进程正在启动并可用于目标客户端(192.168.100.101):

# cat /etc/exports
/datastore/winmedia -ro 192.168.100.101
# portmap
# nfsd -tun 4
# mountd
# showmount -e 192.168.100.109
Exports list on 192.168.100.109
/datastore/winmedia            192.168.100.101

但是,当尝试在客户端挂载磁盘时,我收到 RPC 身份验证错误

# ls /mnt/winmedia
# mount -v 192.168.100.109:/datastore/winmedia /mnt/winmedia
mount: no type was given - I'll assume nfs because of the colon
mount: RPC: Authentication error; why=Client credential too weak

查看服务器日志,只说连接被拒绝,但没有给出原因。

Feb 11 23:43:25 fattyopenbsd mountd[16785]: Can't open /var/db/mountdtab: No such file or directory
Feb 11 23:48:41 fattyopenbsd mountd[16785]: Refused mount RPC from host 192.168.100.101 port 62826

在客户端,rpcinfo显示与服务器端相同的数据,但没有程序名称。

服务器端rpcinfo:

# rpcinfo -p 192.168.100.109
program vers proto    port
100000     2   tcp     111  portmapper
100000     2   udp     111  portmapper
100003     2   tcp    2049  nfs
100003     3   udp    2049  nfs
100003     2   tcp    2049  nfs
100003     3   udp    2049  nfs
100005     1   udp     630  mountd
100005     3   udp     630  mountd
100005     1   tcp     612  mountd
100005     3   tcp     612  mountd

在客户端,同样的事情,但没有进程名称

# rpcinfo -p 192.168.100.109
program vers proto    port
100000     2   tcp     111  
100000     2   udp     111  
100003     2   tcp    2049  
100003     3   udp    2049  
100003     2   tcp    2049  
100003     3   udp    2049  
100005     1   udp     630  
100005     3   udp     630  
100005     1   tcp     612  
100005     3   tcp     612  

所以,我的问题是 1)为什么安装被拒绝? (有没有办法获得有关失败请求的更详细信息?) 2)如何挂载 NFS 驱动器?

服务器正在运行 OpenBSD 5.8 尝试客户端是 Puppy Linux,并且是 Windows 计算机上的 VirtualMachine。 (不确定虚拟机 IP 是否有问题。如果我ifconfig在客户端上运行,它会显示10.0.*.*eth0 上的地址,但 Windows 主机通过无线方式具有 192...101 地址。我想,因为服务器日志显示请求即将到来从...101地址来看,VM问题可能不是问题,但如果我错了,任何建议都会很棒)。

更新我现在认为这个问题与虚拟机网络设置有关。对服务器的请求来自 VM 主机上的非特权端口号 (>1024)。

VM 使用 NAT,因此即使 VM 在发出请求时使用特权端口,这也不会反映在最终请求中。

这应该可以通过使用到主机的桥接连接而不是 NAT 来解决,这会导致请求的 IP 和端口与虚拟机相同,但遗憾的是我的地方只有 wifi,无法使用 wifi 进行桥接连接适配器。

解决方案:使用Samba而不是NFS,这样使用用户名和密码进行身份验证,而不是uid、ip地址和客户端端口号。

答案1

在我的例子中,提升客户端的权限(doas/ sudo)就成功了;

a485$ mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents 
mount_nfs: bad MNT RPC: RPC: Authentication error; why = Client credential too weak
^C
a485$ doas mount -t nfs 192.168.178.203:/home/_transmission/ ~/Torrents
a485$

非特权请求源自非常大的端口号;

Aug  7 12:25:36 t440p mountd[87312]: Refused mount RPC from host 192.168.178.185 port 15630

如果我netstat -a正确解释输出,则来自“提升”请求的活动连接源自端口901(忽略不相关的输出);

a485$ netstat -a
Active Internet connections (including servers)                                                                                                                                                                    
Proto   Recv-Q Send-Q  Local Address          Foreign Address                                                                                                                                                                                                                                                                              
udp          0      0  a485.901               t440p.nfsd

相关内容