本文介紹使用SSH客戶端遠程連接Linux系統的ECS實例時,提示“Maximum amount of failed attempts was reached”錯誤的原因和解決方案。
問題描述
使用SSH客戶端遠程連接Linux系統的ECS實例時,提示“Maximum amount of failed attempts was reached”錯誤。
問題原因
連續多次輸入錯誤密碼,觸發系統PAM認證模塊策略限制,導致用戶被鎖定,無法遠程連接ECS實例。
Linux系統中和SSH相關的PAM配置文件主要有以下三個,如果PAM認證對遠程連接做了限制,例如設置auth required pam_tally2.so deny=3 unlock_time=50
,表示普通用戶和root用戶連續三次輸入錯誤密碼,50秒后才能再次遠程連接ECS實例。
/etc/pam.d/login
:VNC對應的PAM配置文件。/etc/pam.d/sshd
:SSH服務對應的PAM配置文件。/etc/pam.d/system-auth
:系統全局PAM配置文件。
解決方案
您可以根據root用戶是否被鎖定,選擇具體的方案進行修復。
root用戶未被鎖定
本文以注釋系統全局PAM配置文件(/etc/pam.d/system-auth
)中PAM限制配置為例進行說明,修改/etc/pam.d/sshd
或/etc/pam.d/system-auth
方法類似。
使用root用戶通過VNC方式連接實例。
具體操作,請參見通過密碼認證登錄Linux實例。
執行如下命令,查看PAM配置文件中是否存在PAM認證限制。
cat /etc/pam.d/system-auth
例如,系統返回如下時,表示普通用戶和root用戶連續三次輸入錯誤密碼,50秒后才能再次遠程連接ECS實例。
修改system-auth配置文件。
執行如下命令,打開system-auth配置文件。
vim /etc/pam.d/system-auth
按
i
進入編輯模式。根據業務需要,注釋、修改或刪除該配置。
本文以注釋配置為例進行說明。
auth required pam_tally2.so deny=3 unlock_time=50 #原文代碼:普通用戶和root用戶連續三次輸入錯誤密碼會被鎖定,50秒后才能解鎖。 #auth required pam_tally2.so deny=3 unlock_time=50 #注釋后
說明此處使用的是
pam_tally2
模塊,如果不支持pam_tally2
模塊可以使用pam_tally
模塊。另外,不同的PAM版本,設置可能有所不同,具體使用方法,可以參照相關模塊的使用規則。更多詳情,請參見Linux PAM SAG。pam_tally2
與pam_tally
模塊都可以用于賬戶鎖定策略控制。兩者的區別是前者增加了自動解鎖時間的功能。even_deny_root
指限制root用戶。deny
指設置普通用戶和root用戶連續錯誤登錄的最大次數,超過最大次數,則鎖定該用戶。unlock_time
指設定普通用戶鎖定后,多長時間后解鎖,單位是秒。root_unlock_time
指設定root用戶鎖定后,多長時間后解鎖,單位是秒。
遠程連接實例,不再出現該錯誤時,說明該問題已修復。
root用戶被鎖定
使用單用戶模式遠程連接實例。
具體操作,請參見Linux系統進入單用戶模式。
依次執行如下命令,解鎖root用戶。
pam_tally2 -u root #查看root用戶登錄密碼連續輸入錯誤次數。 pam_tally2 -u root -r #清除root用戶密碼連續輸入錯誤次數。 authconfig --disableldap --update #更新PAM安全認證記錄。
重啟實例。
具體操作,請參見重啟實例。
在對應的PAM配置文件中注釋、修改或刪除相應配置。
具體操作,請參見方案一:root用戶未被鎖定時。
遠程連接實例,不再出現該錯誤時,說明該問題已修復。