You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu域环境下Kerberos+SSH Keytab认证失败问题求助及标准配置咨询

Ubuntu域环境下Kerberos+SSH Keytab认证失败问题求助及标准配置咨询

大家好,我刚接触AD和Kerberos相关配置,最近遇到了一个头疼的问题:我搭建了一套Ubuntu域环境,用Ubuntu服务器作为域控(域名为domain.local),一台Ubuntu虚拟机(ubu1)作为工作站,想通过Kerberos+Keytab文件实现免密SSH登录ubu1,但一直失败,下面详细说我的配置过程和遇到的问题,希望能得到大家的帮助。

我的现有配置步骤

1. 工作站ubu1的OpenSSH配置

我在ubu1上修改了/etc/ssh/sshd_config文件,启用了以下Kerberos相关选项:

GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
GSSAPIKeyExchange yes

2. PAM配置(使用sssd作为域客户端)

/etc/pam.d/common-session的配置内容如下:

session [default=1]                     pam_permit.so
session requisite                       pam_deny.so
session required                        pam_permit.so
session optional                        pam_umask.so
session optional                        pam_mkhomedir.so
session required        pam_unix.so
session optional                        pam_sss.so
session optional        pam_systemd.so

3. 域用户创建与密码验证

我先在域控上创建了域用户user@domain.local:

samba-tool user add user Password123!

并且已经验证过,用密码可以正常登录ubu1:

ssh DOMAIN\\user@ubu1.domain.local

4. Keytab文件生成与本地票据获取

为了实现免密,我做了以下操作:

  • 先设置用户密码永不过期:
sudo samba-tool user setexpiry user --noexpiry
  • 导出该用户的Keytab文件:
sudo samba-tool domain exportkeytab user.keytab --principal=user@DOMAIN.LOCAL
  • 把Keytab文件传到我的本地笔记本,然后生成Kerberos票据:
kinit -kt user.keytab 'user@DOMAIN.LOCAL'

遇到的问题

当我执行ssh -K UNINTENDED\\user@ubu1.domain.local -vv尝试免密登录时,系统还是弹出了密码输入提示。从debug日志可以看到,GSSAPI认证尝试了两次都失败了,然后自动跳到了password认证环节:

debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug2: we sent a gssapi-with-mic packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug2: we sent a gssapi-with-mic packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug2: we did not send a packet, disable method
debug1: Next authentication method: password

同时,我在ubu1上用debug模式启动sshd(sudo /usr/sbin/sshd -d -e -p 22 -o LogLevel=DEBUG3),发现了一个关键错误:

Invalid user DOMAIN from 10.10.10.12 port 52520
debug1: PAM: initializing for "DOMAIN"

另外,我的Keytab文件内容看起来是正常的,执行klist -kte user.keytab输出如下:

Keytab name: FILE:user.keytab
KVNO Timestamp         Principal
---- ----------------- --------------------------------------------------------
2 16/01/24 16:56:08 user@DOMAIN.LOCAL (aes256-cts-hmac-sha1-96)
2 16/01/24 16:56:08 user@DOMAIN.LOCAL (aes128-cts-hmac-sha1-96)
2 16/01/24 16:56:08 user@DOMAIN.LOCAL (DEPRECATED:arcfour-hmac)

求助需求

我已经查过一些类似的问题,但都没解决我的情况。因为我刚接触AD相关技术,可能有些配置步骤不符合标准,希望大家能帮我:

  1. 排查当前Kerberos+SSH认证失败的原因
  2. 提供Ubuntu域环境下,Kerberos+Keytab实现SSH免密登录的标准步骤

备注:内容来源于stack exchange,提问作者Kavishka Gihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:20:28