1

В настоящее время я заметил, что когда я использую OpenSSH Server с PAM и, например, RADIUS, в то время как я могу заставить пользователя успешно проходить аутентификацию с PAM, мне все еще нужна локальная учетная запись пользователя в /etc /passwd, например, добавленная с помощью useradd на коробке.

Есть ли какие-либо настройки в OpenSSH, чтобы сказать, что не нужно быть локальным пользователем - это /etc /passwd. И вместо этого shell /home dir /session будет инициализирован через некоторые настройки по умолчанию? Я не смог найти какой-либо способ сделать это онлайн.

1 ответ1

2

Конфигурация в /etc/nsswitch.conf устанавливает порядок поиска пользователей. Вы можете проверить с помощью getent passwd $USER как разрешается ваш пользователь. Для входа в систему пользователю не нужно иметь локальную учетную запись. Свяжите базы данных passwd и group в /etc/nsswitch.conf с ldap, nis и / или sss и используйте соответствующий модуль PAM в стеке.

Случай использования SSSD и freeIPA, где пользователи, группы, оболочка входа в систему, правила sudo, отображения SELinux и т.д. Хранятся в каталоге, управляемом freeIPA. Обратите внимание, что SSHD использует GSSAPI для аутентификации на Kerberos, чья база данных также хранится в каталоге:


 # cat /etc/krb5.conf
 [logging]
  default = FILE:/var/log/krb5libs.log
  kdc = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log
 [libdefaults]
  default_realm = DOMAIN.COM
  dns_lookup_realm = false
  dns_lookup_kdc = true
  rdns = false
  ticket_lifetime = 24h
  forwardable = yes
 [realms]
  DOMAIN.COM = {
   kdc = ipaserver.domain.com:88
   master_kdc = ipaserver.domain.com:88
   admin_server = ipaserver.domain.com:749
   default_domain = domain.com
   pkinit_anchors = FILE:/etc/ipa/ca.crt
 }
 [domain_realm]
  .crapsteak.org = DOMAIN.COM
  crapsteak.org = DOMAIN.COM
 [dbmodules]
   DOMAIN.COM = {
     db_library = ipadb.so
   }

# grep sss /etc/nsswitch.conf passwd: files sss shadow: files sss group: files sss services: files sss netgroup: files sss automount: files sss

# cat /etc/sssd/sssd.conf [domain/domain.com] cache_credentials = True krb5_store_password_if_offline = True ipa_domain = domain.com id_provider = ipa auth_provider = ipa access_provider = ipa ipa_hostname = somehost.domain.com chpass_provider = ipa ipa_server = ipaserver.domain.com ldap_tls_cacert = /etc/ipa/ca.crt [sssd] services = nss, pam, ssh config_file_version = 2 domains = domain.com

# grep sss /etc/pam.d/{password,system}-auth-ac /etc/pam.d/password-auth-ac:auth sufficient pam_sss.so use_first_pass /etc/pam.d/password-auth-ac:account [default=bad success=ok user_unknown=ignore] pam_sss.so /etc/pam.d/password-auth-ac:password sufficient pam_sss.so use_authtok /etc/pam.d/password-auth-ac:session optional pam_sss.so /etc/pam.d/system-auth-ac:auth sufficient pam_sss.so use_first_pass /etc/pam.d/system-auth-ac:account [default=bad success=ok user_unknown=ignore] pam_sss.so /etc/pam.d/system-auth-ac:password sufficient pam_sss.so use_authtok /etc/pam.d/system-auth-ac:session optional pam_sss.so

# grep GSS /etc/ssh/sshd_config GSSAPICleanupCredentials yes GSSAPIAuthentication yes

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .