我定期在 Linux 電腦 (OpenSUSE Tumbleweed) 上安裝 Windows 2012R2 伺服器的共用磁碟機。自上週四以來,當在 Windows 伺服器上安裝更新時,安裝失敗並顯示錯誤訊息
Aug 26 11:45:27 <linux server> kernel: CIFS: Attempting to mount //<windows server>/<share>
Aug 26 11:45:27 <linux server> kernel: CIFS: Status code returned 0xc000018d STATUS_TRUSTED_RELATIONSHIP_FAILURE
Aug 26 11:45:27 <linux server> kernel: CIFS: VFS: \\a-store Send error in SessSetup = -5
Aug 26 11:45:27 <linux server> kernel: CIFS: VFS: cifs_mount failed w/return code = -2
我嘗試了不同的安裝選項(vers=2.0、2.1、3.0、sec=ntlm、ntlmssp)和不同的使用者 - 所有這些都有相同的結果。 Linux 伺服器可以掛載其他伺服器的共享,並且 Windows 伺服器上的共享可以從(幾乎所有)其他電腦存取。我嘗試在兩台機器上再次加入該網域,但沒有效果。
目前我認為 Windows 伺服器上的更新之一是導致該問題的原因。我們還有其他伺服器在 2012R2 上運行,它們仍然運行良好,並且也在周四獲得了更新。唯一的區別是作業系統的語言(德語/英語)。
有沒有辦法獲得有關該問題的更多資訊?有關「STATUS_TRUSTED_RELATIONSHIP_FAILURE」的文件並不完全有幫助。
答案1
看起來像是身份驗證問題,請嘗試以下操作:
- 密切注意 Windows 伺服器上的日誌檔案以捕獲任何相關錯誤
- 確保您在 Linux 上使用的帳戶有權存取此共用、本機帳戶或網域帳戶
- 如果您的防火牆允許,請嘗試對 Linux 進行基本 ping 操作
- 從另一台 Linux 機器上嘗試
- 為什麼你說「幾乎所有」也許有一些共同點阻止你的Linux和其他沒有連接的機器
我希望這有幫助
答案2
問題似乎是我無法使用 Kerberos 身份驗證。我從 winbind 更改為 sssd 以加入 Windows 網域,並使用 sec=krb5 作為 mount.cifs 命令的選項:
mount.cifs //server.tld/share /path/to/mount/point -o vers=3.0,sec=krb5
不幸的是,在我換成sssd之前這是不可能的。
[編輯2021-02-21]
之前用的是winbind,改成sssd加入域。我不記得我所做的所有更改,但從 /etc 中的配置來看,我做了以下操作
- 在 /etc/sssd/sssd.conf 中新增 sssd 配置
kinit
使用和加入網域net ads join
無需更改 smb.conf。