Pure-FTPd 預設可能未啟用 PureDB 認證模組,導致帳號密碼正確仍回報 530 Login authentication failed。本文透過啟用調試模式分析協議流程,找出原因並提供修正步驟。
使用 lftp 連線並開啟 debug:
lftp
open -u feifei,"123456" 192.168.2.23
debug
ls
輸出顯示:
---> USER feifei
<--- 331 User feifei OK. Password required
---> PASS 123456
<--- 530 Login authentication failed
Pure-FTPd 透過 /etc/pure-ftpd/auth/ 目錄下的符號連結決定啟用哪些認證模組,並按檔名排序優先權。檢查該目錄:
ls /etc/pure-ftpd/auth/
# 僅有 65unix 70pam,缺少 puredb
cd /etc/pure-ftpd/auth
ln -s /etc/pure-ftpd/conf/PureDB 60puredb # 60 為優先權,較 unix/pam 早
ls
# 60puredb 65unix 70pam
/etc/init.d/pure-ftpd restart
重啟後啟動參數會包含 -l puredb:/etc/pure-ftpd/pureftpd.pdb,認證即正常。
再次以 lftp 連線測試,應能成功登入並列出目錄。
/etc/pure-ftpd/pureftpd.pdb 存在(由 pure-pw mkdb 產生)。TLS 選項。