今天我解决了一个史诗级难题(不是)。
明明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请求。
其他安全设置: 服务器可能设置了其他安全策略,限制了某些客户端的访问。总之问题解决了就好,我也不是专家所以分析不来太底层的东西。
Comments 1 条评论
博主 雪
补充一下,绿联旗下的NAS开出来的SMB共享都要通过这种方式访问。(如果你是想要通过\设备名 而不是\IP地址),不管怎么说开着这个总是好的,因为已经相当于打开最安全的级别了(?):cat.mht1: