当LDAP服务器关闭时,对本地用户进行了公共密钥认证



我正在尝试配置我的系统以允许我使用公共密钥身份验证登录(ubuntu 16.04)上的本地帐户(即使/何时LDAP服务器)下降。

这是一个云图像,因此我本地需要的用户是ubuntu。该用户没有密码(我不想为安全设置一个密码)。该用户只能允许公共密钥验证。

此用户具有UID 1001,我所有的LDAP用户都有UID号> =2000。

我整天都在尝试东西(例如pam_succeed_if.sopam_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服务器下降!

最新更新