我在同一台服务器中有一个 Kerberos 5 + LDAP 配置。
它们都运行良好(我认为)。请求 TGT 时,Kerberos 运行良好。
当我尝试通过无密码 ssh 从客户端 1 登录到客户端 2 时出现了问题...即使我有一个有效的 TGT,它仍会不断要求我输入密码。
我发布了一些日志和配置。
客户端1 ssh_配置:
主持人 *
GSSAPIAuthentication 是
GSSAPIDelegateCredentials 是
GSSAPIKeyExchange 是
客户端2 sshd_配置:
GSSAPI 选项
GSSAPIAuthentication 是
GSSAPICleanupCredentials 是Kerberos 选项
Kerberos 身份验证 是
尝试从客户端 1 获取 TGT:
kinit 管理员
密码[电子邮件保护]:
清单
票证缓存:FILE:/tmp/krb5cc_0
默认主体:[电子邮件保护]有效开始到期服务主体
23/05/13 15:35:45 24/05/13 01:35:45 krbtgt/[电子邮件保护]
续订至 24/05/13 03:35:45
尝试从客户端 1 ssh 到客户端 2:
Client1 shell 输出:
远程控制[电子邮件保护]
[电子邮件保护]的密码:
客户端2 /var/log/auth:
5 月 23 日 15:39:42 CLIENT2 sshd[31486]: 来自 192.168.1.173 的无效用户管理员
5 月 23 日 15:39:42 CLIENT2 sshd[31486]: 来自 192.168.1.173 端口 38326 的无效用户管理员未失败 ssh2
Client1 shell 输出:
清单
票证缓存:FILE:/tmp/krb5cc_0
默认主体:[电子邮件保护]有效开始到期服务主体
23/05/13 15:35:45 24/05/13 01:35:45 krbtgt/[电子邮件保护]
续订至 24/05/13 03:35:45
23/05/13 15:40:24 24/05/13 01:35:45 主机/[电子邮件保护]
续订至 24/05/13 03:35:45
如您所见,CLIENT2 ssh2 甚至没有尝试向 kerberos 服务器进行身份验证。但 Kerberos 为 client1 提供了 client2 的 TGT。
我已经检查了连接或 DNS 问题...一切正常。
有什么帮助吗?提前致谢...
更新
@Steve:我已经检查了 /etc/pam.d/sshd,看起来那里没有 kerberos 配置...但是这是我在 nsswitch.conf 中所看到的:
#
pre_auth-client-config # 密码:兼容
密码:files ldap
#
pre_auth-client-config # 组:兼容
组:files ldap
#
pre_auth-client-config # 影子:兼容
影子:files ldap
使用命令 pam-auth-update 我也选择了 Kerberos 身份验证。
谢谢...
答案1
client2 没有名为 admin 的帐户,因此所有尝试对该不存在的帐户进行身份验证的操作都将失败。sshd
不会为不存在的帐户执行 GSSAPI。
如果该帐户应该存在于本地,则需要使用 创建它useradd
。如果它存在于 LDAP 中,则请确保nss-ldap
/nss-ldapd
已正确配置(通常是/etc/ldap.conf
)。