版本:v2.0.0-beta.3(v2.0.0-beta.2/1均无法使用)
安装方式:计划任务的脚本库 和 使用手册里的命令行方式均尝试过
防火墙:21 39000-40000端口均已放开 (也尝试过不安装防火墙所有端口全部放开)
FTP添加的用户:www / root / admin / unbutu 等均添加尝试过
问题:使用后台添加的FTP用户和生成的密码尝试用FTP软件登录,提示530 Login authentication failed
FTP链接详细日志:
状态: |
正在连接 150..:21… |
状态: |
连接建立,等待欢迎消息… |
状态: |
明文 FTP 不安全。请切换到 FTP over TLS。 |
命令: |
USER www |
响应: |
331 User www OK. Password required |
命令: |
PASS ****** |
响应: |
530 Login authentication failed |
错误: |
严重错误: 无法连接到服务器 |
使用命令【 sudo pure-pw list】可以看到FTP是存在的
问题会100%复现,尝试过N台服务器新装均出现此问题。
还有一个比较致命的问题就是,当时FTP添加了 root / unbutu 这两个用户名,结果删除这两个用户名账户的时候貌似会删除系统用户导致用户绑定的SSH秘钥失效无法登陆,这个问题也尝试过会复现。
问了AI给的答案是:
1、你 FTP 登录时服务器在用 PAM(系统用户认证)验证,而非你配置的 PureDB 虚拟用户数据库。
2、虚拟用户功能没有生效。
是的,乌班图,但使用CENTOS和DEBIAN也是同样的问题。一开始不能用,后面跟着AI的建议调调调不知道哪步就突然又好了,但是每次调好的步骤定位不到,比如调试时通过A方法让FTP正常了但是重装系统后直接使用A方法发现还是不行,结果又调调调发现在B方法的时候又正常了, 但是下一次直接通过B方法还是不行。总感觉这个 Pure-FTPd像是需要很久的启动时间一样,但是你装好什么不操作的话他就一直不会好,操作了又定位不到是在哪一步恢复正常的,纯玄学…我看这个问题很早之前宝塔论坛也有,那边帖子里也比较玄学没明确的解决办法,但是后续版本就好了。
目前只能用SFTPGO这个工具才能正常实现FTP功能~
你们可以用一个新环境测试一下, Pure-FTPd按照计划任务的命令和手册里的方式直接装应该也用不了
我用的 Ubuntu,我检查了一下计划任务
里面的安装 Pure-FTPd
这个的命令详情。我怀疑 configure_pureftpd
这块没有脚本没有执行。
因为脚本里判断 pure-ftpd.conf
文件存在,会创建一个 pure-ftpd.conf.bak
,这个文件没看到。
如果 pure-ftpd.conf
文件不存在,会执行chmod 644 /etc/pure-ftpd/pureftpd.pdb
,但是 pureftpd.pdb
这个文件的权限我看到是 600。
所以,参考官网文档+这个脚本,我首先修改了 pure-ftpd.conf
文件:
# 开启日志
VerboseLog yes
# 拒绝匿名登录
NoAnonymous yes
PAMAuthentication no
PassivePortRange 39000 40000
PureDB /etc/pure-ftpd/pureftpd.pdb
然后执行命令:
chmod 644 /etc/pure-ftpd/pureftpd.pdb
echo '/etc/pure-ftpd/pureftpd.pdb' > /etc/pure-ftpd/conf/PureDB
echo yes > /etc/pure-ftpd/conf/VerboseLog
echo yes > /etc/pure-ftpd/conf/NoAnonymous
echo '39000 40000' > /etc/pure-ftpd/conf/PassivePortRange
echo 'no' > /etc/pure-ftpd/conf/PAMAuthentication
echo 'no' > /etc/pure-ftpd/conf/UnixAuthentication
echo 'clf:/var/log/pure-ftpd/transfer.log' > /etc/pure-ftpd/conf/AltLog
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50puredb
然后重启pure-ftpd,之后我就能正常连上去了