Red Hat Training

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

22.6. 配置 SSSD 为 OpenSSH 服务提供缓存

系统安全服务守护进程(SSSD)为多个系统服务提供接口,包括 OpenSSH。
本节论述了如何将 SSSD 配置为为机器和用户缓存 SSH 密钥。

22.6.1. SSSD 如何通过 OpenSSH 工作

OpenSSH 是一种 SSH 协议实施。OpenSSH 基于用于识别身份验证实体 的公钥-私钥对,在两个系统之间创建安全的加密连接。详情请参阅 系统管理员指南中的 OpenSSH
SSSD 可以充当机器和用户的 SSH 公钥的凭据缓存。在这个设置中:
  1. OpenSSH 配置为引用 SSSD 以检查缓存的密钥。
  2. SSSD 使用身份管理(IdM)域,IdM 存储公钥和主机信息。
注意
只有 IdM 域中的 Linux 机器才能使用 SSSD 作为 OpenSSH 的重要缓存。其他计算机(包括 Windows 机器)不能.

SSSD 如何管理主机密钥

要管理主机密钥,SSSD 会执行以下操作:
  1. 从主机系统检索公钥。
  2. 将主机密钥存储在 /var/lib/sss/pubconf/known_hosts 文件中。
  3. 建立与主机计算机的连接。
有关所需配置步骤的详情,请查看 第 22.6.2 节 “将 OpenSSH 配置为将 SSSD 用于主机密钥”

SSSD 如何管理用户密钥

要管理用户密钥,SSSD 会执行以下操作:
  1. 从 IdM 域中的用户条目检索用户的公钥。
  2. 以标准授权密钥格式,将用户密钥存储为 .ssh/sss_authorized_keys 文件。
有关所需配置步骤的详情,请查看 第 22.6.3 节 “将 OpenSSH 配置为为用户密钥使用 SSSD”

22.6.2. 将 OpenSSH 配置为将 SSSD 用于主机密钥

您可以针对每个用户或整个系统更改配置。
  1. 打开所需的配置文件。
    1. 要更改特定于用户的配置,请打开 ~/.ssh/config 文件。
    2. 要更改系统范围的配置,请打开 /etc/ssh/sshd_config 文件。
  2. 使用 ProxyCommand 选项指定将用来连接到 SSH 客户端的命令(带有所需参数和主机名的 sss_ssh_knownhostsproxy 工具)。
    有关 sss_ssh_knownhostsproxy 的详情,请查看 sss_ssh_knownhostsproxy(1) man page。
  3. 使用 GlobalKnownHostsFile 选项指定 SSSD 主机文件的位置: /var/lib/sss/pubconf/known_hosts。此文件将被使用,而不是默认的 OpenSSH known_hosts 文件。
以下示例将 SSH 配置为在 SSSD 域中查找公钥,并通过提供的端口和主机进行连接:
ProxyCommand /usr/bin/sss_ssh_knownhostsproxy -p %p %h
GlobalKnownHostsFile /var/lib/sss/pubconf/known_hosts
有关配置 SSH 和配置文件的详情,请参考 ssh_config(5) man page。

22.6.3. 将 OpenSSH 配置为为用户密钥使用 SSSD

您可以更改整个系统的配置。
  1. 打开 /etc/ssh/sshd_config 文件。
  2. 使用 AuthorizedKeysCommand 选项指定将要执行的命令来检索用户密钥。
  3. 使用 AuthorizedKeysCommandUser 选项指定在其下运行命令的帐户下的用户。
以下示例将 SSH 配置为在用户帐户下运行 sss_ssh_authorizedkeys 实用程序。
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser user
有关 sss_ssh_authorizedkeys 的详情,请查看 sss_ssh_authorizedkeys(1) man page。
有关配置 SSH 和配置文件的详情,请参考 ssh_config(5) man page。