我正在尝试配置我的系统以允许我使用公共密钥身份验证登录(ubuntu 16.04)上的本地帐户(即使/何时LDAP服务器)下降。
这是一个云图像,因此我本地需要的用户是ubuntu
。该用户没有密码(我不想为安全设置一个密码)。该用户只能允许公共密钥验证。
此用户具有UID 1001
,我所有的LDAP用户都有UID号> =2000。
我整天都在尝试东西(例如pam_succeed_if.so
和pam_localuser
)。
现在getent passed ubuntu
工作正常并返回本地PassWD线。但是ssh
拒绝这样:
Sep 6 17:27:43 ip-10-99-0-241 sshd[24895]: nss_ldap: could not connect to any LDAP server as (null) - Can't contact LDAP server
Sep 6 17:27:43 ip-10-99-0-241 sshd[24895]: nss_ldap: failed to bind to LDAP server ldaps://ldap.domain.tld: Can't contact LDAP server
Sep 6 17:27:43 ip-10-99-0-241 sshd[24895]: nss_ldap: reconnecting to LDAP server...
然后最终使用Authentication failed.
失败。
/etc/nsswitch.conf
passwd: compat [success=return] ldap group: compat [success=return] ldap shadow: compat [success=return] ldap
/etc/pam.d/common-account
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so # NOTE: These two won't work - fatal: Access denied for user <ldap user> by PAM account configuration [preauth] #account sufficient pam_localuser.so #account sufficient pam_succeed_if.so uid [le sign] 500 quiet account [success=1 default=bad success=ok user_unknown=ignore] pam_ldap.so account requisite pam_deny.so account required pam_permit.so account required pam_krb5.so minimum_uid=2000
/etc/pam.d/common-auth
auth [success=3 default=ignore] pam_krb5.so minimum_uid=2000 ignore_root auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass auth [success=1 default=ignore] pam_ldap.so use_first_pass ignore_unknown_user ignore_authinfo_unavail # NOTE: Can't login with this (changed the success above)! #auth requisite pam_succeed_if.so uid [ge sign] 500 quiet auth requisite pam_deny.so auth required pam_permit.so
/etc/ldap.conf
bind_timelimit 10 pam_min_uid 2000 nss_initgroups_ignoreusers ubuntu,local nss_reconnect_tries 2 nss_reconnect_sleeptime 1 nss_reconnect_maxsleeptime 8 nss_reconnect_maxconntries 2
(我尝试使用PER和代码块,但是SOF拒绝让我发布,很抱歉,如果看起来很可怕 - 如果有管理员权利的任何人都可以进行修复,请进行。)
重读nsswitch.conf
的男人页面,给了我这个:
-
return
- 现在返回结果。请勿调用任何进一步的查找功能。但是,出于兼容原因,如果这样是组数据库的选定操作和NotFound状态,并且配置文件不包含initroups行,下一个查找功能总是被调用,而不会影响搜索结果。
关键词这里是此部分:配置文件不包含initgroups行,下一个查找函数始终称为。
,如我添加了行
initgroups: files
我现在也可以登录ubuntu
用户,即使LDAP服务器下降!