故障描述:
今有一批centos操作系统的云主机发生故障,除了使用root用户以及今日新创建的test用户外,其它普通用户均无法正常使用账户密码正常登录。
具体现象:
市场使用wcp工具的sftp,无法用某用户链接到所有主机,root用户和test用户可以链接。
工具报错:无法初始化sftp协议,主机是sftp服务器吗?
收到消息后,进一步确认问题,更换用xshell附加的xftp工具,同样报错:无法连接服务!
解决思路:
第一时间,大嘴想到的是查看几种配置,确认是否云主机有人为或自动添加了某种用户限制。
(云主机环境,之前遇到过自动添加host.deny配置或其它限制,允许密钥登录无法密码远程。)
passwd -S username 、/etc/shadow 、 /etc/nologin 、/etc/passwd 、 /etc/default/login 、 /etc/ssh/sshd_config
然并没有什么发现,值得一提,这种解决思路本身就存在狭隘,主意识确认了方向然后就闷头去查,远没有先从有效的信息排查具体点的原因再去确认方向找出根源的效率高,这种最直接有效的自然是查看日志。
果然,很快让我找到了疑点:
很明确的提示,password aged、密码老化、有效期已经失效导致会话失败!
解决方法(三种):
1、直接用命令修改用户密码有效期:chage -M 99999 username
2、修改/etc/shadow文件:
3、修改/etc/login.defs文件:
(注:login.defs文件参数只对创建普通用户生效,对root用户无效。shadow文件比login.defs文件优先级要高!)
(今天的分享就到这里,如果您有高见或好的分享,记得留言哦!)