У меня есть кластер CentOS 8 HPC с узлом входа, который подключен к активному каталогу через sssd / kerberos. Из пользовательской сети доступен только узел входа в систему. Пользователи используют свою обычную учетную запись домена для доступа к узлу входа. Весь трафик кластера находится в отдельной сети, которая маршрутизируется через узел входа.
Внутри кластера используются ключи SSH для аутентификации. Однако пока это работает только для локальных пользователей кластера, перечисленных в passwd. Теперь я хотел бы, чтобы узел входа предоставил сопоставление пользователей AD для uid / gid с вычислительными узлами в кластере. То есть пользователи AD входят в узел входа со своей учетной записью AD / kerberos, а внутри кластера используют ключи SSH.
Как лучше всего заархивировать это? Я подумал о репликации пользователей AD с помощью сервера LDAP на узле входа в систему и оттуда предоставить их узлам кластера. Кластер не имеет состояния, поэтому присоединение к домену с помощью sssd / kerberos на каждом узле при загрузке не представляется возможным.
Попробовав разные подходы, я нашел решение, которое мне подходит. Я настроил sssd на использование AD в качестве провайдера ldap на узлах. Используя obfuscated_password, это работает без присоединения к домену. Теперь мой sssd.conf выглядит так:
[sssd]
config_file_version = 2
services = nss, pam, ssh
domains = domain.com
full_name_format = %1$s
[domain/domain.com]
id_provider = ldap
auth_provider= ldap
cache_credentials = True
ldap_uri = ldap://ad.domain.com:389
ldap_search_base = DC=domain,DC=com
ldap_schema = ad
ldap_user_search_base = OU=...,DC=domain,DC=com
ldap_default_bind_dn = CN=user,OU=...,DC=domain,DC=com
ldap_default_authtok_type = obfuscated_password
ldap_default_authtok = xxxxxxx
ldap_tls_cacert = /etc/pki/tls/cert.pem
ldap_tls_reqcert = allow
ldap_id_mapping = True
ldap_referrals = False
ldap_user_extra_attrs = altSecurityIdentities:altSecurityIdentities
ldap_user_ssh_public_key = altSecurityIdentities
ldap_use_tokengroups = True
ldap_user_name = sAMAccountName
ldap_group_name = sAMAccountName
default_shell = /bin/bash
fallback_homedir = /home/%u@%d
override_homedir = /home/%u@%d