今天我解决了一个史诗级难题(不是)。

明明SMB共享设置没有任何问题,但是特定的某台电脑就是一直在提示:”用户名或密码错误“。反复检查了114514遍也没有用

服务器是Ubuntu Server下的最新版SMB v4,客户端是Windows11。一切都严格按照安全规范进行,没有空密码也没有map to GUEST,总之就是你没有账户密码就什么都看不到的那种。
如果你也遇到了类似的问题,那可以先按照这个思路进行:

我逐一排查了以下的可能性:

  • SMB服务器配置错误
  • 客户端的键盘有问题(?)
  • 输错密码次数过多进了黑名单
  • SMB版本不匹配(比如WinXP的SMB版本就很低)

以上问题都排查过了,简述如下:

  • 单位的电脑都能连,只有特定的这两台有诈
  • 键盘没问题,点开看输入的密码完全一直
  • 查阅了一下SMB没有黑名单这种东西(就算有我也没开
  • SMB版本是最新的

那我是怎么解决的呢?

Win键+R调出运行窗口,输入Secpol.msc后回车,然后会弹出一个本地安全策略窗口
Windows本地安全策略→本地策略→安全选项→网络安全:LAN管理器身份验证级别
选择”仅发送NTLMv2响应。拒绝LM和NTLM(&)“
Run > Secpol.msc
then Local Policies > Security Options > Network Security: LAN Manager authentication level to 'Send NTLMv2 response only. Refuse LM & NTLM'

至于为什么这个选项导致SMB连不上,Gemini是这样解释的:

强制使用NTLMv2: Samba服务器可能被配置为只接受NTLMv2身份验证,而您的客户端由于某些原因(如旧的系统设置)默认发送LM或NTLM请求。
其他安全设置: 服务器可能设置了其他安全策略,限制了某些客户端的访问。

总之问题解决了就好,我也不是专家所以分析不来太底层的东西。

届ける言葉を今は育ててる
最后更新于 2024-09-10