You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EC2实例使用FileZilla连接FTP报错:No supported authentication methods available (server sent: publickey) 排查求助

EC2实例使用FileZilla连接FTP报错:No supported authentication methods available (server sent: publickey) 排查求助

你好!看到你在EC2上配置了FTP服务,用FileZilla连接时遇到了认证失败的问题,先把你提到的错误日志贴出来方便参考:

Command: open "ftphyb@ec2-3-8-24-114.ca-central-1.compute.amazonaws.com" 22
Status: Using username "ftphyb".
Status: Server refused our key
Status: Server refused our key
Status: Server refused our key
Status: Server refused our key
Error: FATAL ERROR: No supported authentication methods available (server sent: publickey)
Error: Could not connect to server

(注:你提到上面的IP和FTP信息仅为演示使用,非真实数据)

结合这个错误提示,给你整理几个最可能的排查方向,你可以逐个验证:

  • 先排查FileZilla的连接协议是否选错
    这是最容易踩的坑!错误提示里服务器明确只接受publickey认证,很大概率是你在FileZilla里误选了「SFTP - SSH文件传输协议」,但你实际配置的是基于用户名密码的普通FTP服务。SFTP依赖SSH公钥体系,而你没给这个FTP用户配置SSH公钥,自然会被拒绝。
    解决方法:打开FileZilla的连接管理器,把协议改成「FTP - 文件传输协议」,登录类型选择「正常」,再输入你创建的FTP用户名和密码,重新尝试连接。

  • 检查FTP服务的配置是否禁用了密码认证
    假设你用的是最常见的vsftpd服务,登录到EC2实例后,打开配置文件/etc/vsftpd/vsftpd.conf,重点检查以下参数:

    • 确认local_enable=YES:这个参数控制是否允许本地用户(也就是你创建的FTP用户)登录
    • 确认没有设置password_authentication=NO:如果有这个参数且值为NO,就会禁用密码登录
    • 若开启了SSL,需确认FileZilla对应配置了SSL连接:如果ssl_enable=YES,那FileZilla里要勾选“要求显式FTP over TLS”,否则也会导致认证失败
      修改配置后记得重启FTP服务:sudo systemctl restart vsftpd
  • 验证FTP用户的有效性与权限
    先在EC2实例本地测试该用户是否能正常登录:执行su - ftphyb,输入你设置的密码,看能不能成功切换到该用户的环境。如果切换失败,说明用户创建过程有问题,比如密码未正确设置、用户被锁定,或者家目录不存在。
    另外还要检查用户家目录的权限:FTP服务通常会拒绝权限过于开放的家目录(比如777权限),建议把家目录权限设置为755(用户可读可写可执行,其他只读)或者700(仅用户自己可访问)。

  • 排查PAM认证模块的限制
    有些情况下,PAM(可插拔认证模块)会限制FTP用户的登录方式。打开/etc/pam.d/vsftpd文件,检查是否有强制要求公钥认证的规则,比如类似auth required pam_ssh_keyfile.so的配置,如果有,注释掉该规则后重启FTP服务再试。

备注:内容来源于stack exchange,提问作者user9437856

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:25:33