在使用linux系統(tǒng)時(shí)碰到ssh無法登錄可以su切換問題了,下面我們就一起來看看這個(gè)問題的解決辦法吧,希望文章能夠幫助到各位朋友吧.
一、故障現(xiàn)象
接業(yè)務(wù)側(cè)同事郵件,一臺(tái)現(xiàn)網(wǎng)主機(jī)使用正確的用戶名密碼 ssh 登錄不上,之前正常,使用其他用戶 “ su - 該用戶 ” 輸入密碼可以正常切換進(jìn)去,而且使用該用戶進(jìn)行 ftp 登錄也正常.
主機(jī)系統(tǒng):SUSE Linux Enterprise Server 10(x86_64) sp1 ----系統(tǒng)有點(diǎn)老舊了.
問題用戶:prestat ------其他用戶正常
二、排查
1、chage指令查看
首先使用prestat 用戶及密碼進(jìn)行ssh 登錄嘗試,發(fā)現(xiàn)問題同業(yè)務(wù)側(cè)同事描述一致,改用root 直接進(jìn)入登錄,先使用chage命令查看用戶是否因密碼過期被鎖,這步實(shí)際上可以忽略,因?yàn)閒tp登錄及su切換過來正常,不過穩(wěn)妥起見,還是先看下.
- m.survivalescaperooms.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
同時(shí)又用chage命令查看了一個(gè)正常用戶,發(fā)現(xiàn)顯示的一致.
注:接下來還可以查看下/etc/shadow 文件,查看用戶是否真正的被鎖定,不過這里按排障思路先不直入正題,因?yàn)榘聪旅娴牟襟E可以直接定位根因.
2、message日志查看
使用root登錄后,切換到/var/log目錄,開啟一個(gè)終端通過tail -f message 查看日志變化,使用SCRT 再次使用prestat 用戶登錄,查看登錄時(shí)日志的變化,通過該方法查看到了日志有報(bào)錯(cuò)如下:
- m.survivalescaperooms.com:/var/log # tail -20000 messages |grep deny
- Apr 9 16:54:37 m.survivalescaperooms.com sshd[11911]: pam_tally(sshd:auth): user prestat (310) tally 39, deny 6
- Apr 9 17:01:11 m.survivalescaperooms.com sshd[25582]: pam_tally(sshd:auth): user prestat (310) tally 40, deny 6
從上面可以看到,用戶登錄時(shí)觸發(fā)了pam.d下的sshd登錄認(rèn)證相關(guān)模塊pam_tally,具體原因是其超出了最大6次輸入錯(cuò)誤密碼的限制.
3、pam文件查看
查看sshd服務(wù)的pam配置文件,在其11行發(fā)現(xiàn)有pam_tally的策略配置,如下:
- m.survivalescaperooms.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
- password include common-password
- session include common-session
- # Enable the following line to get resmgr support for
- # ssh sessions (see /usr/share/doc/packages/resmgr/README)
- #session optional pam_resmgr.so fake_ttyname
- auth required pam_tally.so deny=6
- account required pam_tally.so
上面11行的配置有點(diǎn)霸道,超過6次錯(cuò)誤密碼,就直接永遠(yuǎn)鎖定了,除非手工解除 ---- 安全組同事的配置,不好非議,其實(shí)可以讓其自動(dòng)過一段時(shí)間解除限制的,網(wǎng)上經(jīng)常看到配法如下:
auth required pam_tally.so deny=3 unlock_time=300
上面的配置表示,超過3次失敗,鎖定300秒,時(shí)間到了以后,自動(dòng)解除限制.
三、問題解決
既然找到了原因,此時(shí)通過查看/etc/shadow文件,會(huì)發(fā)現(xiàn)以:分隔的第二例加密后的密碼串部分前面會(huì)有一個(gè)嘆號(hào),即表示用戶被鎖定,既然找到了原因,可以通過下面的方法解鎖:
- m.survivalescaperooms.com:/var/log # pam_tally --reset --user prestat //prestat為用戶名
- User prestat (310) had 40
- 或
- faillog -r
注:由于該主機(jī)使用的系統(tǒng)版本有些老,使用還是pam_tally模塊,實(shí)際上后面一些新的系統(tǒng)里很多開始使用pam_tally2模塊,具體解鎖reset次數(shù)也可以簡(jiǎn)化下.
pam_tally2 -r -u 用戶名
其他拓展:查看某一用戶錯(cuò)誤登陸次數(shù):pam_tally --user
例如,查看work用戶的錯(cuò)誤登陸次數(shù):pam_tally --user work
清空某一用戶錯(cuò)誤登陸次數(shù):pam_tally --user --reset
例如,清空 work 用戶的錯(cuò)誤登陸次數(shù):pam_tally --user work --reset
該模塊的更多用法和信息也可以通過man pam_tally 或 man pam_tally2 進(jìn)行查看.
新聞熱點(diǎn)
疑難解答
圖片精選