5.3.7.2. 使用 SSH 不带密码
用于本地授权的
localauth
Kerberos 插件确保 Kerberos 主体自动映射到本地 SSSD 用户名。通过 localauth
,在使用 Kerberos 登录时不会提示来自可信 AD 域的 Windows 用户输入密码,因此无需密码即可使用 SSH。
插件提供跨多个域和信任的可靠映射机制:当
sssd
连接到 Kerberos 库以将主体映射到本地 POSIX 身份时,SSSD 插件会根据 IdM 中定义的信任协议对其进行映射。
在某些情况下,用户可以使用 SSH 堡垒主机访问其他 Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux 机器。默认情况下,如果您使用 Kerberos 验证堡垒主机上的 SSH,则无法使用 Kerberos 向其他 Red Hat Enterprise Linuxnbsp 转发到其他 Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 主机。要启用这样的转发身份验证,请在 bastions 主机主体中添加 OK_AS_DELEGATE Kerberos 标志:
# ipa host-mod bastion_host.idm.example.com --ok-as-delegate=true
Red Hat Enterprise Linuxnbsp 上的 AD 用户 Kerberos 身份验证;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux 7.1 and newer Systems
在 Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux 7.1 和更新的系统中,SSSD 自动配置
localauth
Kerberos 插件。
SSSD 允许使用
user@AD.DOMAIN
、ad.domain\user 和 AD\user
格式的用户名。
注意
在具有
localauth
的系统中,不需要在 /etc/krb5.conf
文件中设置 auth_to_local
选项,或者在.k5login
文件中列出 Kerberos 主体。localauth
插件使得之前用于登录的配置不会过时的密码。
为 AD 用户手动配置 Kerberos 身份验证
在没有
localauth
插件的系统中,SSH 提示输入 ActiveActive Directorynbsp 的用户密码 ;Directory 域用户即使用户获取正确的 Kerberos ticket。
要启用 Active Directory 用户在这种情况下使用 Kerberos 进行身份验证,请在
/etc/krb5.conf
文件中配置 auth_to_local
选项,或在用户主目录中的.k5login
文件中列出用户 Kerberos 主体。
- 配置
/etc/krb5.conf
- 以下流程描述了如何在 Kerberos 配置中配置域映射。
- 打开
/etc/krb5.conf
文件。 - 在
[realms]
部分中,按名称标识 IdM 域,然后添加两个auth_to_local
行来定义 Kerberos 主体名称映射:- 在一个规则中,包含用于映射不同 Active Directory 用户名格式和特定 Active Directory 域的规则。
- 在另一条规则中,为标准 Unix 用户名设置
DEFAULT
值。
例如:[realms] IDM = { .... auth_to_local = RULE:[1:$1@$0](^.*@ADDOMAIN$)s/@ADDOMAIN/@addomain/ auth_to_local = DEFAULT }
- 重新启动 KDC 服务。
[root@server ~]# systemctl restart krb5kdc.service
请注意,如果您使用auth_to_local
选项配置 Kerberos 身份验证,用于 SSH 访问的用户名必须满足以下条件:- 用户名必须具有格式
ad_user@ad_domain
。 - 域名必须是小写。
- 用户名的大小写必须与 ActiveActive Directorynbsp;Directory 中的用户名匹配。
例如,用户和用户
,因为存在不同的情况。被视为不同的用户
有关设置auth_to_local
的详情,请查看 krb5.conf(5) man page。 configure.k5login
- 以下步骤将系统配置为查找本地用户名的 Kerberos 主体名称。
在用户的主目录中创建.k5login
文件。- 列出用户在 文件中使用的 Kerberos 主体。
如果身份验证用户与现有 Kerberos 票据中的主体匹配,则允许用户使用票据登录,而且不会提示用户输入密码。请注意,如果您使用.k5login
配置配置 Kerberos 身份验证,用于 SSH 访问的用户名必须具有ad_user@ad_domain
格式。有关配置.k5login
文件的详情请参考 .k5login(5) man page。
无论哪种配置过程都会导致 AD 用户能够使用 Kerberos 登录。