Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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.DOMAINad.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 配置中配置域映射。
  1. 打开 /etc/krb5.conf 文件。
  2. [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
    }
  3. 重新启动 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 主体名称。
  1. 在用户的主目录中创建.k5login 文件。
  2. 列出用户在 文件中使用的 Kerberos 主体。
如果身份验证用户与现有 Kerberos 票据中的主体匹配,则允许用户使用票据登录,而且不会提示用户输入密码。
请注意,如果您使用.k5login 配置配置 Kerberos 身份验证,用于 SSH 访问的用户名必须具有 ad_user@ad_domain 格式。
有关配置 .k5login 文件的详情请参考 .k5login(5) man page。
无论哪种配置过程都会导致 AD 用户能够使用 Kerberos 登录。