22.6. 配置 SSSD 为 OpenSSH 服务提供缓存
系统安全服务守护进程(SSSD)为多个系统服务提供接口,包括 OpenSSH。
本节论述了如何将 SSSD 配置为为机器和用户缓存 SSH 密钥。
22.6.1. SSSD 如何通过 OpenSSH 工作
OpenSSH 是一种 SSH 协议实施。OpenSSH 基于用于识别身份验证实体 的公钥-私钥对,在两个系统之间创建安全的加密连接。详情请参阅 系统管理员指南中的 OpenSSH。
SSSD 可以充当机器和用户的 SSH 公钥的凭据缓存。在这个设置中:
- OpenSSH 配置为引用 SSSD 以检查缓存的密钥。
- SSSD 使用身份管理(IdM)域,IdM 存储公钥和主机信息。
注意
只有 IdM 域中的 Linux 机器才能使用 SSSD 作为 OpenSSH 的重要缓存。其他计算机(包括 Windows 机器)不能.
SSSD 如何管理主机密钥
要管理主机密钥,SSSD 会执行以下操作:
- 从主机系统检索公钥。
- 将主机密钥存储在
/var/lib/sss/pubconf/known_hosts
文件中。 - 建立与主机计算机的连接。
有关所需配置步骤的详情,请查看 第 22.6.2 节 “将 OpenSSH 配置为将 SSSD 用于主机密钥”。
SSSD 如何管理用户密钥
要管理用户密钥,SSSD 会执行以下操作:
- 从 IdM 域中的用户条目检索用户的公钥。
- 以标准授权密钥格式,将用户密钥存储为
.ssh/sss_authorized_keys
文件。
有关所需配置步骤的详情,请查看 第 22.6.3 节 “将 OpenSSH 配置为为用户密钥使用 SSSD”。
22.6.2. 将 OpenSSH 配置为将 SSSD 用于主机密钥
您可以针对每个用户或整个系统更改配置。
- 打开所需的配置文件。
- 要更改特定于用户的配置,请打开
~/.ssh/config
文件。 - 要更改系统范围的配置,请打开
/etc/ssh/sshd_config
文件。
- 使用
ProxyCommand
选项指定将用来连接到 SSH 客户端的命令(带有所需参数和主机名的sss_ssh_knownhostsproxy
工具)。有关sss_ssh_knownhostsproxy
的详情,请查看 sss_ssh_knownhostsproxy(1) man page。 - 使用
GlobalKnownHostsFile
选项指定 SSSD 主机文件的位置:/var/lib/sss/pubconf/known_hosts
。此文件将被使用,而不是默认的 OpenSSHknown_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
您可以更改整个系统的配置。
- 打开
/etc/ssh/sshd_config
文件。 - 使用
AuthorizedKeysCommand
选项指定将要执行的命令来检索用户密钥。 - 使用
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。