現在、PAMでOpenSSHサーバーを使用しているときに気づきました。たとえば、RADIUSユーザーにPAMで正常に認証させることはできますが、/ etc/passwdにローカルユーザーアカウントが必要です。たとえば、ボックスにuseraddを追加します。
ローカルユーザーが/ etc/passwdである必要がないという、OpenSSHの設定はありますか。代わりに、シェル/ホームディレクトリ/セッションはデフォルト設定で初期化されますか?私はこれをオンラインで行う方法を見つけることができませんでした。
/etc/nsswitch.conf
の構成は、ユーザーが検索される順序を設定します。 getent passwd $USER
でユーザーの解決方法を確認できます。ログインするためにユーザーがローカルアカウントを持っている必要はありません。 /etc/nsswitch.conf
のpasswd
およびgroup
データベースを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