smbclient --authentication-file "session setup failed: NT_STATUS_INVALID_PARAMETER" 和 "SPNEGO(gse_krb5) NEG_TOKEN_INIT failed: NT_STATUS_NO_MEMORY"

smbclient --authentication-file "session setup failed: NT_STATUS_INVALID_PARAMETER" and "SPNEGO(gse_krb5) NEG_TOKEN_INIT failed: NT_STATUS_NO_MEMORY"

(我有 Centos 7 和 samba-client。x86_64 4.6.2-8.el7 针对 windows 服务器 2008,它位于由单独的 windows 服务器控制的 AD 域中2008 AD 域控制器)

从这里开始:

smbclient -W my.domain -U myuser //svr.my.domain/fred mypassword -c list

... 效果很好,然后决定将域、用户和密码移动到一个文件中,并按照 smbclient 联机帮助页中的说明使用 -A。文件 windows-凭据,内容:

username=myuser
domain=my.domain
password=mypassword

... 使用命令行:

smbclient -A windows-credentials //svr.my.domain/fred -c list

.. 没有工作,给出了错误:

SPNEGO(gse_krb5) NEG_TOKEN_INIT failed: NT_STATUS_NO_MEMORY
session setup failed: NT_STATUS_NO_MEMORY

...在互联网上一个小时表明很多人都遇到了这个问题,几乎每个人都有不同的答案,none 他们中的一些人对我有用。尝试了他们答案的各种组合 - 特别是 https://askubuntu.com/questions/1008992/ubuntu-17-10-to-access-windows-files-shares-within-workplace-it,最后得到...

创建了一个单独的 my.smb.conf,仅包含:

[global]
  # seems to get rid of
  #   SPNEGO(gse_krb5) NEG_TOKEN_INIT failed: NT_STATUS_NO_MEMORY
  client use spnego = no
  # seems to get rid of
  #   session setup failed: NT_STATUS_NO_MEMORY
  client ntlmv2 auth = no

...并使用:

smbclient -s my.smb.conf -A windows-credentials //svr.my.domain/fred -c list

...看起来它可以工作,但我不太确定,因为似乎有凭据缓存并且完全缺乏关于这些东西如何工作或应该如何工作的信息。

谁能真正解释一下这些?即使没有,也许这个问题的另一个答案会对某个地方的人有所帮助。

这似乎特定于 Windows 2008。附加到 Windows Server 2016 无需修改 smb.conf 文件即可工作。我一直无法找到任何真实的细节。

如果 smbclient 出现问题 你可以挂载 smb 文件夹并像本地文件夹一样使用它

mount -t cifs //<ip>/<share folder>$ /mnt -o user=<user>,pass=<password>,domain=<workdomain>