在没有本地用户的情况下使用 OpenSSH 服务器

在没有本地用户的情况下使用 OpenSSH 服务器

目前我注意到,当我使用带有 PAM 和 RADIUS 的 OpenSSH 服务器时,虽然我可以让用户使用 PAM 成功进行身份验证,但我仍然需要在 /etc/passwd 中有一个本地用户帐户,例如在框中使用 useradd 添加。

OpenSSH 中是否有任何设置表明 /etc/passwd 中不需要本地用户。相反,shell/home dir/session 将通过某些默认设置进行初始化?我在网上找不到任何方法可以做到这一点。

答案1

中的配置/etc/nsswitch.conf设置了查找用户的顺序。您可以检查getent passwd $USER如何解析用户。用户无需拥有本地帐户即可登录。将passwdgroup中的数据库绑定/etc/nsswitch.conf到 ldap、nis 和/或 sss,并使用堆栈中的正确 PAM 模块。

使用案例固态存储系统免费IPA,其中用户、组、登录 shell、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

相关内容