加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux中ssh无法登录可以su切换的问题处理办法

发布时间:2022-06-11 16:33:51 所属栏目:Linux 来源:互联网
导读:在使用linux系统时碰到ssh无法登录可以su切换问题了,下面我们就一起来看看这个问题的解决办法吧,希望文章能够帮助到各位朋友吧. 一、故障现象 接业务侧同事邮件,一台现网主机使用正确的用户名密码 ssh 登录不上,之前正常,使用其他用户 su - 该用户 输入密码
  在使用linux系统时碰到ssh无法登录可以su切换问题了,下面我们就一起来看看这个问题的解决办法吧,希望文章能够帮助到各位朋友吧.
 
  一、故障现象
 
  接业务侧同事邮件,一台现网主机使用正确的用户名密码 ssh 登录不上,之前正常,使用其他用户 “ su - 该用户 ” 输入密码可以正常切换进去,而且使用该用户进行 ftp 登录也正常.
 
  主机系统:SUSE Linux Enterprise Server 10(x86_64) sp1 ----系统有点老旧了.
 
  问题用户:prestat ------其他用户正常
 
  二、排查
 
  1、chage指令查看
 
  首先使用prestat 用户及密码进行ssh 登录尝试,发现问题同业务侧同事描述一致,改用root 直接进入登录,先使用chage命令查看用户是否因密码过期被锁,这步实际上可以忽略,因为ftp登录及su切换过来正常,不过稳妥起见,还是先看下.
 
  www.phpfensi.com :~ # chage -l prestat
   
  Minimum:        0
   
  Maximum:        99999
   
  Warning:        7
   
  Inactive:       -1
   
  Last Change:            Mar 12, 2015
   
  Password Expires:       Never
   
  Password Inactive:      Never
   
  Account Expires:        Never
  同时又用chage命令查看了一个正常用户,发现显示的一致.
 
  注:接下来还可以查看下/etc/shadow 文件,查看用户是否真正的被锁定,不过这里按排障思路先不直入正题,因为按下面的步骤可以直接定位根因.
 
  2、message日志查看
 
  使用root登录后,切换到/var/log目录,开启一个终端通过tail -f message 查看日志变化,使用SCRT 再次使用prestat 用户登录,查看登录时日志的变化,通过该方法查看到了日志有报错如下:
 
  www.phpfensi.com:/var/log # tail -20000 messages |grep deny
   
 
  3、pam文件查看
 
  查看sshd服务的pam配置文件,在其11行发现有pam_tally的策略配置,如下:
 
  www.phpfensi.com:/var/log # cat /etc/pam.d/sshd
   
  #%PAM-1.0
   
  auth     <a href="/tags.php/include/" target="_blank">include</a>        common-auth
   
  auth     required       pam_nologin.so
   
  account  include        common-account
   
    
  account required        pam_tally.so
  上面11行的配置有点霸道,超过6次错误密码,就直接永远锁定了,除非手工解除 ---- 安全组同事的配置,不好非议,其实可以让其自动过一段时间解除限制的,网上经常看到配法如下:
 
  auth        required      pam_tally.so deny=3 unlock_time=300
 
  上面的配置表示,超过3次失败,锁定300秒,时间到了以后,自动解除限制.
 
  三、问题解决
 
  既然找到了原因,此时通过查看/etc/shadow文件,会发现以:分隔的第二例加密后的密码串部分前面会有一个叹号,即表示用户被锁定,既然找到了原因,可以通过下面的方法解锁:
 
  www.phpfensi.com:/var/log # pam_tally --reset --user prestat   //prestat为用户名
   
  User prestat    (310)   had 40
   
  或
   
  faillog  -r
  注:由于该主机使用的系统版本有些老,使用还是pam_tally模块,实际上后面一些新的系统里很多开始使用pam_tally2模块,具体解锁reset次数也可以简化下.
 
  pam_tally2 -r -u 用户名
 
  其他拓展:查看某一用户错误登陆次数:pam_tally --user
 
  例如,查看work用户的错误登陆次数:pam_tally --user work
 
  清空某一用户错误登陆次数:pam_tally --user --reset
 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读