在Ubuntu上使用Kerberos设置sshd时 ,需要“确保每个用户都有一个有效的帐户,既可以在本地主机上(通过adduser或类似的方式),也可以通过共享源如LDAP
这是为什么?
我可以看到,如果您使用GSSAPIAuthentication选项或KerberosAuthentication,您已经validation用户对KDC。
这只是一个需要将用户名映射到用户ID的问题?
我可以看到,如果您使用GSSAPIAuthentication选项或KerberosAuthentication,您已经validation用户对KDC
KDCvalidationprincipal ,而不是用户帐户。 (可以为用户,服务等创build一个委托人。对于KDC,这是所有的委托人,并validation其身份)。
Linux需要一个用户名,它对应的uid & gid (和几个可选的属性)被认为是一个有效的用户帐户。 KDC不知道/不能提供这些细节,因此用户的详细信息必须通过NSS提供给操作系统。 根据configuration,它可以从files [本地用户], ldap或其他来源获取用户详细信息。
一旦操作系统知道这是一个有效的用户帐户( getent passwd user_name ),那么你可以使用任何可用的身份validation机制(本地passwd,ldap auth,kerberos等)来validation用户帐户。
对于Kerberos auth:系统通过剥离REALM部分(默认)将主体( abc@REALM )映射到用户'abc' ,并在主体abc@REALM成功validationkerberos时授予访问权限。
Kerberos身份validation令牌不会提供安全上下文(例如组权限),只有当凭据有效时,ldap才会提供这些安全上下文