這個問題糾結了好幾天,在網上也查了好些資料都沒有解決。現在終於解決了,必須要分享出來。
環境配置:
PC1:Linux Mint 19.2,在此電腦上配置Samba服務。我爲了方便,是通過Mint的一個Samba插件配置的。
PC2:Win7-64位,旗艦版
問題現象:
在PC1上使用VirtualBox安裝了一個Win7-64 旗艦版的虛擬機,通過此虛擬機訪問Linux上的Samba目錄時,總是提示“未知的用戶名或錯誤密碼”。如下圖所示:
但我通過PC2訪問Linux的Samba服務,卻能正常訪問。
解決過程:
在網上查找了很多資料,大部都說按以下方法:
單擊”開始“-“運行”,輸入secpol.msc,打開“本地安全策略”,在本地安全策略窗口中依次打開“本地策略”-->“安全選項”,然後再右側的列表中找到“網絡安全:LAN管理器身份驗證級別”,把這個選項的值改爲“發送 LM 和 NTLM – 如果已協商,則使用 NTLMv2會話安全”。
但經常嘗試,問題依舊。
也有人說,刪除憑證,或者改Windows計算機名稱,都試過。問題依舊沒有解決。
沒辦法了,想想還是隻有自己分析:
首先,其它的Windows可以正常訪問,說明Samba配置本身沒有問題,出問題的應該是Windows虛擬機的配置。
查看Linux的日誌:pam_unix(samba:session): session closed for user nobody
明顯,用戶名不對。說明Windows沒有傳遞用戶名。
但通過PC2測試發現,正常連接時,也有這個日誌,但隨後就有建立連接成功的日誌,並且顯示了正常的用戶名。
通過虛擬機連接時,在顯示了
session closed for user nobody 之前 顯示了session closed for user XXX,說明真實的用戶是傳遞過去了的
結合前面查到的資料,所有猜測是虛擬機連接到Samba時,協議對不上,導致Windows在收到第一個應答時,直接就報錯了。
就嘗試將“LAN管理器身份驗證級別”改爲“僅發送 NTLM2響應”,然後,·居然成功了。
至於爲什麼PC2可以連接成功,一種可能是這個是Windows的Bug. PC2用了2年多了,一直更新。我的虛擬機剛安裝完成,未更新補丁,所以連接不上。但這個猜測,我沒有測試驗證。