![为什么自 High Sierra 以来我无法通过 SMB 安装共享](https://linux22.com/image/1546404/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%87%AA%20High%20Sierra%20%E4%BB%A5%E6%9D%A5%E6%88%91%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%20SMB%20%E5%AE%89%E8%A3%85%E5%85%B1%E4%BA%AB.png)
自从我更新到 High Sierra(直接到 10.13.1)后,我无法再通过 AFP 协议连接我的 iMac 和 MacBook,因此我尝试了 SMB。
打开“smb://user:password@S/Share”::可以工作,但在屏幕上显示 Finder。
另一个问题是我无法选择挂载点的名称。我使用 JAVA 应用程序工作,因此应该使用命令行工作:
mkdir /用户/用户/卷/共享/
/sbin/mount -t smbfs //用户:密码@S/F /用户/用户/卷/共享/
但这给出了:
mount_smbfs:服务器拒绝连接:身份验证错误
我做错了什么或者忘记了什么?提前谢谢。;JOOP!
答案1
当我尝试使用以下命令通过命令行连接时,遇到了同样的错误“mount_smbfs:服务器拒绝连接:身份验证错误”:
mkdir /Volumes/test
mount_smbfs //user@server/test /Volumes/test
但是,我可以通过转到 Mac 服务器的“系统偏好设置 - 共享 - 文件共享 - 选项”来消除错误。然后在“Windows 文件共享”下,单击以启用要用于共享的帐户的安全性较低的密码选项(可选,为此目的创建一个仅共享用户),然后输入该帐户的密码。然后我可以使用上述命令挂载共享。
答案2
我们也遇到了可怕的问题mount_smbfs: server connection failed: No route to host
,原来是用户密码中的 # 符号(又称井号、井号、数字符号)导致的!# 符号恰好是该用户密码的最后一个字符。使用其他密码时,不会再出现错误。
一位同事想出了解决方法,以防密码中有特殊字符,可以使用转义符或引号。结果发现密码末尾的一些特殊字符会导致此问题。请参阅https://stackoverflow.com/questions/27026168/escape-special-characters-in-mount-command
具体来说,如果您遇到mount_smbfs: server connection failed: No route to host
错误,可能是因为您的密码中没有转义特殊字符(或其他)
因此,密码如下password$#
我们尝试添加单引号:
mount_smbfs '//someusername:somepassword$#@serverurl/shared' /Volumes/shared
而不是这样:
mount_smbfs //someusername:password$#@serverurl/shared /Volumes/shared
但那不起作用!
我们唯一能做的就是对密码进行 URL 编码以转义特殊字符(使用任何有效的方法 -https://www.urlencoder.io/例如,我们使用 python urllib.parse.quote_plus(...) )
mount_smbfs //someusername:password%24%23@serverurl/shared /Volumes/shared
请注意,在 Linux 版本中,使用mount -t cifs
或mount -t smbfs
代替mount_smbfs
Mac OS 版本。
答案3
解决方式:
在文件共享中,我必须在“选项”下存储所涉及用户的密码。
我不喜欢这个。
答案4
您是否尝试对域进行身份验证?或者当托管远程文件系统的计算机时,您不想使用域是属于域的一部分?
就我的情况而言,我的 Mac 不在域中,但托管远程文件系统的计算机在域中。为了强制远程计算机针对本地用户而不是域用户进行身份验证,我必须在域组件中使用关键字“local”:
mount -t smbfs '//local;user:password@S/F' /Volumes/Share