sshd 和 Kerberos - getent passwd

sshd 和 Kerberos - getent passwd

什么时候在 Ubuntu 上使用 Kerberos 设置 sshd,需要“确保每个用户都有一个有效的帐户,无论是在本地主机上(通过 adduser 或类似方法),还是通过共享源(如 LDAP)

这是为什么?

我可以看到,如果您使用 GSSAPIAuthentication 选项或 KerberosAuthentication,您已经根据 KDC 验证了用户。

这仅仅是需要将用户名映射到用户 ID 的问题吗?

答案1

我可以看到,如果您使用 GSSAPIAuthentication 选项或 KerberosAuthentication,则您已经根据 KDC 验证了用户

KDC 验证的是principal,而不是用户帐户。(可以为用户、服务等创建主体。对于 KDC,它是所有主体,并且它会验证相同的身份)。

Linux 需要用户名及其对应的uid& gid(以及一些可选属性)才能将其视为有效用户帐户。KDC 不知道/无法提供这些详细信息,因此必须通过 NSS 将用户详细信息提供给操作系统。根据配置,它可以从files[本地用户]ldap或其他来源获取用户详细信息。

一旦操作系统知道它是一个有效的用户帐户(getent passwd user_name),那么您可以使用任何可用的身份验证机制(本地密码、ldap 身份验证、kerberos 等)来验证用户帐户。

对于 kerberos 身份验证:系统通过剥离部分(默认)将主体( abc@REALM)映射到用户,并且如果主体的 kerberos 验证成功,则授予访问权限。'abc'REALMabc@REALM

答案2

Kerberos 身份验证令牌不提供安全上下文,例如 ldap 提供的组权限,仅当凭证有效时才提供

相关内容