记一次PAM failure导致的ssh登录VPS失败

原创
2014/09/01 20:53
阅读数 653

今天想在VPS上装一个monit做监控。没想到出了点问题折腾了差不多一天。

问题的起源是monit依赖于LinuxPAM。这个东西我以前是一点都没怎么了解过,还以为只是个普通的依赖库,所以就没怎么注意。没想到一时的大意白白浪费了一天时间。

在安装完PAM后,monit顺利地安装成功了。可是我突然发现,ssh不能连到VPS了!我以为是我本地的xshell有问题,就把当前的连接断掉(为什么要断啊T_T),试着连了连其他的服务器。试了几个都可以,就是VPS不行。于是就开始了断断续续差不多一天的折腾...

尝试了重启vps,重置root密码等,都是不行。联系了linode的客服,那边的技术客服建议先重置root密码,再用LISH(linode的一种shell)连接。我试了几次还是没成功。后来用一个录屏软件,把登录的信息录了,再慢速回放才看清,登录有一个迅速闪掉的报错信息。

pam failure

这下终于有点眉目了。之前都不知道是因为PAM的问题。

在与客服沟通之后,客服建议用进"Rescue Mode"。这个模式有点像WinPE,会登入一个完整小巧的linux shell里,然后通过mount读写vps中的磁盘文件。就这样摸索着修改文件,改了得有十多次。每次从Rescue Mode里出来再重启VPS进行登录测试。PAM的配置总是不对。最后终于通过修改/etc/ssh/sshd_config中的UsePAM no,成功登录了ssh。登录之后想改一下root密码,因为刚才改了半天,想改回从前的密码。passwd了一下,又见到了那个PAM failure的错误。网上查了查,误打误撞地添加了/etc/pam.d/other文件。

#%PAM-1.0
#auth     required       /lib/security/$ISA/pam_deny.so
#account  required       /lib/security/$ISA/pam_deny.so
#password required       /lib/security/$ISA/pam_deny.so
#session  required       /lib/security/$ISA/pam_deny.so

auth     required       pam_unix.so
account  required       pam_unix.so
password required       pam_unix.so
session  required       pam_unix.so

启动了一堆软件和应用。至此,VPS才完成恢复。急忙写了一个备份整站的脚本,把网站和nginx的配置信息上传到了百度盘。额,我想我是玩不起PAM了...

话说回来,linode客服的神速回复和专业意见还真是值得起这价钱。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部