一台CentOS 5.3的WEB服务器之前都能通过ssh用key可以正常远程连接,突然有一天不能远程连了,具体现象是:
a)通过SecureCRT用key连接的时候没有响应;
b)直接密码连接报密码或用户名错误;
c)通过其他有key的linux服务器连接的时候报"Connection closed by 10.10.10.100";
d)在本地的console登录的时候,输入用户名后直接报"login incorrec"。
可以确定的是这之前就没有人更改过密码。
具体解决过程如下:
1. 在本地用单用户模式进入系统,
2. 直接passwd,报"passwd: Authentication Token Manipulation Error",搜了一下这个错误网上有多种解决方法,详见本文最后,可这些方法我都试了也没有起作用。
3. #df -hl的时候,发现根文件系统满了,清出部分空间后,passwd更改密码仍然报上面那个错误;
4. 查看/var/log/secure日志是,发现了下面的错误:
Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM unable to dlopen(/lib/security/pam_unix.so)
Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM [error: /lib/security/pam_unix.so: invalid ELF header]
Nov 26 05:16:46 rcwweb2 sshd[1065]: PAM adding faulty module: /lib/security/pam_unix.so
Nov 26 05:16:46 rcwweb2 sshd[1066]: fatal: Access denied for user root by PAM account configurationp
5. 从日志中看出是/lib/security/pam_unix.so文件出了问题,之前本机有一个pam_unix.so.bak文件,删除损坏文件,将备份恢复后,可以正常登录了。
不知道是不是因为根盘满了造成此文件损坏导致的。
这期间参考了网上的一些处理报"passwd: Authentication Token Manipulation Error"报错的方法,具体如下:
1)可能是/etc/passwd和/etc/shadow文件不同步导致的,使用pwconv命令同步;
2)/etc/passwd和/etc/shadow设置了安全设置,通过chattr -i /etc/passwd /etc/shadow解决;
3)通过echo "123456" | passwd --stdin root或echo "root:lanmang" | chpasswd
手动修改密码解决;
4)关闭selinux解决;
5)通过perl -e 'print crypt("passw0rd","\$1\$YkRDae.B\$"),"\n"'
手动生成密码串,并手动拷贝到/etc/shadow文件中解决;
阅读(18393) | 评论(0) | 转发(0) |