在 Slackware 15(Samba 版本 4.15.10)上,我想做 smbclient,使用 gssapi/kerberos 身份验证。当然,kerberos 客户端缓存已在登录时设置,我可以在 tmp 目录中看到文件缓存。 Pam 配置为使用 pam_krb5 进行密码会话和身份验证
如果我使用新的 --use-kerberos.. 询问密码!
smbclient -U pino --use-kerberos=required \\\\myhost\\Pub
Password for [MYDOM\pino]:
如果我删除 -U pino,我会执行 sudo su - Pino 或使用 Pino 登录,同样的事情。
如果我使用已弃用的 -k..works
smbclient -U pino -k \\\\myhost\\Pub
Password for [MYDOM\pino]:
WARNING: The option -k|--kerberos is deprecated!
Try "help" to get a list of possible commands.
smb: \>
如何使用 kerberos 进入..不带 -k ?
编辑:可能是一个错误..或者我的配置错误,但是使用 smbclient -U pino \\myhost\Pub
要求输入密码..我按 Enter 并使用 kerberos!
情况 1:有票,要求通行证..我按 Enter 并使用 kerberos
smbclient \\\\myhost\\Pub
Password for [[email protected]]:
Try "help" to get a list of possible commands.
smb: \>
情况 2:kdestroy,auth 失败(符合逻辑,OK,对)
kdestroy
smbclient \\\\myhost\\Pub
Password for [[email protected]]:
gensec_spnego_client_negTokenInit_step: Could not find a suitable mechtype in NEG_TOKEN_INIT
session setup failed: NT_STATUS_INVALID_PARAMETER
现在的问题是..为什么仍然要求输入密码?
答案1
找到解决方案。
需要使用 kerberos(由于用户 roaima,也可以在 smb.conf 中设置永久)。 -N 不要求通行证。
echo mypass|kinit
Password for [email protected]:
smbclient -N --use-kerberos=required '\\myhost.priv\myshare'
Try "help" to get a list of possible commands.
smb: \>
使用“旧”语法也可以正常工作
echo mypass|kinit
Password for [email protected]:
smbclient -N --use-kerberos=required \\\\MYHOST\\myshare
Try "help" to get a list of possible commands.
smb: \>
答案2
我在这里处于劣势,因为在我用于测试的机器上我运行的是早期版本的smbclient
(4.9.5-Debian)。然而,根据samba.org 上的手册页似乎独立的首选替代品-k
是表明如何你想使用 Kerberos:
--use-kerberos=desired|required|off
此参数确定 Samba 客户端工具是否尝试使用 Kerberos 进行身份验证。对于 Kerberos 身份验证,连接到服务时需要使用 dns 名称而不是 IP 地址。请注意,此处指定此参数将覆盖文件
client use kerberos
中的参数${prefix}/etc/smb.conf
。
所以,我希望你应该使用类似这样的场景,
kinit [email protected] # Domain in capitals. Provide password
smbclient --use-kerberos=required '\\SERVER\Share'
请注意,如果我使用旧形式的命令,smbclient
我不会收到输入密码的提示:
smbclient -k '\\SERVER\Share'
与您的情况的这种差异表明您kinit
失败了或票证已过期。不要依赖 中文件的存在/tmp
,而是运行klist
来确认票证的有效性:
klist
Ticket cache: FILE:/tmp/krb5cc_1001
Default principal: [email protected]
Valid starting Expires Service principal
28/10/22 17:25:55 29/10/22 03:25:55 krbtgt/[email protected]
renew until 29/10/22 17:25:52
28/10/22 17:26:05 29/10/22 03:25:55 cifs/[email protected]