天天看點

一個有意思的SSH登陸案例

這是一個特殊的案例,在修複ssh登陸之前,這個系統還經曆了系統C庫檔案損壞,系統無法啟動的恢複操作。

通過控制台管理終端可以登陸到系統内部,ssh登陸提示密碼不正确,無論修改成什麼密碼,ssh都提示密碼不正确。

在問題排查之前,我們先看下SSH 登入關聯因素示意圖:

一個有意思的SSH登陸案例

為了排查這個問題,我們需要先了解一下什麼是PAM?

PAM(插入式驗證子產品(Pluggable Authentication Module,PAM))

簡單來說,就是提供了一組身份驗證、密碼驗證的統一抽象接口,應用程式員可以使用這些API接口來實作與安全性相關的功能,例如:

PAM 子產品的基本流程

PAM 子產品是按子產品類型歸類的。任何給定的子產品至少要實作四種子產品類型功能之一:

我們看下這個檔案的内容(/etc/pam.d/sshd):

做一個小實驗,修改/etc/ssh/sshd_config中的驗證方式

在清空/etc/pam.d/sshd以及PasswordAuthentication=yes的情況下:

設定UsePAM=yes,提示驗證失敗(實際驗證的時候發現不同的系統版本提示不太一樣,用戶端是Authentication failed.secure日志有所不同,failed passwd ,pam提示都有)

一個有意思的SSH登陸案例

設定UsePAM=no,使用正确的passwd登入成功

一個有意思的SSH登陸案例

通過這個測試可以确定,當開啟UsePAM的時候,先去找驗證子產品,由驗證子產品決定下一步的驗證

(如/etc/pam.d/sshd檔案裡面的auth include password-auth)即使密碼是正确的,如果驗證子產品自身有問題也無法登入

<a href="https://help.aliyun.com/knowledge_detail/52874.html">https://help.aliyun.com/knowledge_detail/52874.html</a>

<a href="https://www.ibm.com/developerworks/cn/linux/l-pam/">https://www.ibm.com/developerworks/cn/linux/l-pam/</a>

繼續閱讀