我目前正在尝试配置一个由其他人完成初始安装的系统。
我可以通过 ssh 进入该盒子,然后在其中添加一些组到我的帐户并更改我的密码(我仍然打开该会话,并通过 获得 root 访问权限sudo -i
)。我被告知“passwd:所有身份验证令牌均已成功更新。”。然而,在尝试第二次连接时,我收到“权限被拒绝”。
我已再次重置密码(输入非常小心)并尝试再次登录(非常小心地打字)。但还是一样。
账户没有被锁定(至少 usermod -U 没有影响,并且影子文件中没有“!”)。我没有尝试以 root 身份登录。没有/etc/nogin
我的 shell 没有从 /bin/bash 更改
所以我仍然可以访问机器,我将公钥复制到 ~/.ssh/authorized_keys。尝试使用它登录时会出现密码提示 - 仍然失败。
这是一个 RHEL 6.5 盒子
审核日志(selinux 模式是宽松的)似乎指向密码失败:
type=USER_AUTH msg=audit(1455985417.050:170881): user pid=23682 uid=0 auid=0 ses=1548 subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="user" exe="/usr/sbin/sshd" hostname=192.168.1.81 addr=192.168.1.81 terminal=ssh res=failed'
type=SYSCALL msg=audit(1455985417.051:170882): arch=c000003e syscall=2 success=yes exit=4 a0=7fdafebb7e30 a1=401 a2=7fdafebb2366 a3=0 items=1 ppid=28418 pid=23682 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1548 comm="sshd" exe="/usr/sbin/sshd" subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 key="session"
type=CWD msg=audit(1455985417.051:170882): cwd="/"
type=PATH msg=audit(1455985417.051:170882): item=0 name="/var/log/btmp" inode=41 dev=fd:05 mode=0100600 ouid=0 ogid=22 rdev=00:00 obj=system_u:object_r:faillog_t:s0 nametype=NORMAL
type=USER_AUTH msg=audit(1455985417.052:170883): user pid=23682 uid=0 auid=0 ses=1548 subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=password acct="(unknown)" exe="/usr/sbin/sshd" hostname=? addr=192.168.1.81 terminal=ssh res=failed'
答案1
对于您的问题或症状,没有固定的正确答案。分辨率将特定于您的环境。
当我遇到此类问题时,这些是我尝试的一些方法,它通常指向正确的方法:
您尝试过以前的密码吗?它可能尚未更新为较新的密码。
密码存储在哪里? NIS、LDAP、本地计算机。 。 。
是否有任何“从属”NIS 服务器尚未更新为“主”NIS 服务器的最新内容?
切换到 root 后,可以切换回您的用户吗?
复制公钥并在本地获取私钥后,“ssh -vvv $HOST”显示什么?
如果您尝试从远程主机到自身的 ssh 会怎样?
编辑,回应以下评论:
(1)您尝试过以前的密码吗?
(2) 当我说“切换到 root 后,你能切换回你的用户吗?”时,看起来你只是从 sudo shell 退出。我的意思是:在你当前的 shell 中,“sudo -i”有效;之后,“su $USER”或“su - $USER”会起作用吗?或者它会因“找不到$USER”或“找不到主目录”而失败吗?
(3)“id $USER”的输出是什么?
(4) 你的 home 目录 & ~/.ssh/ 的权限是什么?
(5) 您可以创建另一个本地帐户并登录并更改密码吗?或者问题仅出在您的活期账户上?
(6) /etc/passwd 中列出的您的帐户是否正确?
(7) 当您尝试手动执行列表 shell 时,它是否正确启动?
最终编辑(在OP发现自己的问题之后):
如果每个新用户都可以登录,但在更改密码后,登录显示“权限被拒绝”,然后检查 /etc/passwd 和 /etc/shadow 中到底发生了什么变化。
创建一个新帐户,备份 /etc/passwd 和 /etc/shadow,登录,更改 passwd,注销,比较文件以查看更改的内容,并解释差异。
在当前情况下,事实证明“密码年龄”是问题所在,其中“密码在策略允许更改之前已更改”。
答案2
问题的原因是该策略要求任何密码的最短期限为 7 天 - 我的具有“默认”密码的帐户是在不到 7 天之前创建的(但为什么我可以在passwd
不报告任何问题的情况下更改它呢?)。
我已经详细了解了 pam 配置,但完全忽略了查看 /etc/login.defs(并且仍然认为 passwd 中存在缺陷,允许我在最短期限未到期时更改密码)。