CentOS要求input密码两次sudo,login

在每次login或sudo提示时,服务器在第一次提供时总是拒绝密码,但是第二次接受密码。 我发现这个线程描述了什么似乎是相同的问题,但沿着我所描述的解决scheme的线路上玩我的/etc/pam.d/system-auth文件没有为我工作。 例如,将“try_first_pass”的第一个实例更改为“use_first_pass”,使得login身份validation连续失败,移除“nullok”也一样。 有谁知道需要改变什么使系统第一次接受正确的密码?

将/etc/pam.d/system-auth:

#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so 

编辑 :在回应评论,这是/etc/pam.d/login:

 #%PAM-1.0 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so auth include system-auth account required pam_nologin.so account include system-auth password include system-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so session optional pam_console.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open session required pam_namespace.so session optional pam_keyinit.so force revoke session include system-auth -session optional pam_ck_connector.so 

让我补充一点,我所知道的关于授权的知识是我在最近一个小时左右能够谷歌的 – 我绝望地解决了这个问题,因为我们的IT人员还没有。 所以请相应地提出你的答案。 我对Linux有一个合理的普遍的熟悉。

编辑 :响应另一个评论,这是什么显示在/ var / log /安全在典型的login尝试(密码input正确的两次)。 信息如服务器名称和IP已被更改。

 Oct 28 07:37:41 myserver sshd[944]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=asus-laptop-abc.def.ghi.edu user=matt Oct 28 07:37:41 myserver sshd[944]: pam_ldap: ldap_starttls_s: Operations error Oct 28 07:37:43 myserver sshd[944]: Failed password for matt from 123.456.78.90 port 12345 ssh2 Oct 28 07:37:47 myserver sshd[944]: pam_sss(sshd:account): Access denied for user matt: 10 (User not known to the underlying authentication module) Oct 28 07:37:47 myserver sshd[944]: Accepted password for matt from 123.456.78.90 port 12345 ssh2 Oct 28 07:37:47 myserver sshd[944]: pam_unix(sshd:session): session opened for user matt by (uid=0) 

有趣的是,上述情况与第一次input真正不正确的密码时发生的情况有所不同,在这种情况下,在第一次pam_ldap调用之后会有另外一行:

 Oct 28 08:13:13 myserver sshd[1054]: pam_ldap: error trying to bind as user "uid=matt,ou=People,dc=abc,dc=ghi,dc=edu" (Invalid credentials) 

所以系统知道在前一种情况下证书是正确的,但无论如何login失败? 这里是当我打电话使用sudo时,会发生什么情况,这也强制双重login(在这种情况下使用nano来读取/ var / log / secure):

 Oct 28 08:13:27 myserver sudo: pam_unix(sudo:auth): authentication failure; logname=matt uid=1000 euid=0 tty=/dev/pts/2 ruser=matt rhost= user=matt Oct 28 08:13:32 myserver sudo: matt : TTY=pts/2 ; PWD=/home_dir/home/matt ; USER=root ; COMMAND=/bin/nano /var/log/secure 

编辑 :当我以root身份login时,这个问题不存在! 它接受第一次尝试的密码,/ var / log / secure看起来像这样,我认为是正常的:

 Oct 29 14:25:58 myserver sshd[7074]: Accepted password for root from 123.456.78.90 port 12345 ssh2 Oct 29 14:25:58 myserver sshd[7074]: pam_unix(sshd:session): session opened for user root by (uid=0) 

我似乎没有足够的代表来评论,所以这是一个黑暗的尝试,在一个答案中的一点点。

pam_ldap:ldap_starttls_s:操作错误

我不得不怀疑你的日志的这一部分是否指出罪魁祸首。 我的怀疑是你的ldapconfigurationerror handling导致连接失败的某种方式。

注意每个模块的响应:

 pam_ldap: ldap_starttls_s: Operations error pam_sss(sshd:account): Access denied for user matt: 10 (User not known to the underlying authentication module) pam_unix(sshd:session): session opened for user matt by (uid=0) 

所以我们在这里所说的是由于错误而失败,sss说它不知道你是谁,而且本地authentication成功了。

要考虑的方向:

  1. 在ldap服务器日志中是否有错误?
  2. 如果可能的话,你可以禁用TLS,看看是否有效?
  3. ldapsearch是否有效?