无法通过Unix凭证登录Orange Pi Zero上的PureFTP求助
解决Orange Pi Zero上PureFTP无法使用系统凭证登录的问题(Armbian 5.38 Ubuntu)
看了你的问题:已经把UnixAuthentication设为yes、PAMAuthentication设为no,但登录时还是被判定为匿名用户(ANONY. OFF),而且你不想用虚拟用户、也不想依赖pure-ftpd.conf,还怀疑是TLS的问题。我来帮你一步步排查解决:
1. 先确认PureFTP的实际启动参数
因为你没用到pure-ftpd.conf,PureFTP的所有配置都来自启动命令行参数。先看看当前运行的PureFTP进程带了哪些参数:
ps aux | grep pure-ftpd
你需要确保:
- 启动参数里有
--unixauth(对应UnixAuthentication=yes) - 没有
--anonymous-only、--no-unixauth这类强制匿名或禁用系统用户登录的参数 - 同时没有
--pamauth参数(毕竟你关掉了PAM验证)
如果参数不对,就去修改启动脚本——比如/etc/init.d/pure-ftpd或者systemd服务文件/lib/systemd/system/pure-ftpd.service,调整完重启服务就行。
2. 验证TLS是否真的是问题根源
你怀疑TLS影响,这个方向很对:
- 如果你开了强制TLS(比如
--tls=2),但客户端没用到FTPS连接,服务器会拒绝非TLS的身份验证请求,表现出来就像是匿名登录失败。 - 先临时关闭TLS测试:在启动参数里加
--tls=0,然后重启服务:
sudo systemctl restart pure-ftpd
如果关闭后能正常用系统用户登录,那就是TLS的锅。这时候可以把TLS参数改成--tls=1(允许但不强制),同时确保服务器有有效的SSL证书——用openssl生成自签名证书就行:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365
然后在启动参数里加上--tls-cert=/etc/ssl/private/pure-ftpd.pem。
3. 检查系统用户的登录限制
- 看看有没有文件把你的用户拉黑了:检查
/etc/pure-ftpd/ftpusers或者/etc/ftpusers,如果你的用户名在里面,删掉它就行。 - 确认用户主目录的权限:PureFTP需要能访问用户的主目录,用
ls -ld /home/你的用户名检查,确保用户自己有读写权限。
4. 看日志找具体错误
开启日志能帮你精准定位问题:
- 在启动参数里加上
--verbose和--logfile=/var/log/pure-ftpd.log,重启服务后尝试登录,然后看日志:
sudo tail -f /var/log/pure-ftpd.log
日志里会明确告诉你失败原因,比如“Unix authentication failed”或者“TLS required but not used”,照着解决就行。
5. 确认PureFTP支持Unix身份验证
虽然Armbian的包一般都支持,但还是确认下:
pure-ftpd --help | grep unixauth
如果输出里有--unixauth选项,说明没问题;如果没有,可能需要重新编译PureFTP并开启Unix身份验证支持。
内容的提问来源于stack exchange,提问作者M. Mariscal
相关产品推荐
相关产品推荐

