一台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
文件中
解决;