问题描述
在使用 FileZilla 的 SFTP 功能通过 SSH 登录主机时,可能会遇到以下错误提示:
Disconnected: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
这表明客户端(FileZilla)尝试的认证方法与服务器端(SSH 服务)支持的认证方法不匹配。服务器端仅支持公钥(publickey)、GSSAPI 密钥交换(gssapi-keyex)和 GSSAPI 与 MIC(gssapi-with-mic)认证,而客户端可能未提供有效的公钥或尝试了不被支持的密码认证。
解决方法
此问题通常是由于 SSH 服务器配置禁用了密码认证(PasswordAuthentication)所致。解决方法是通过修改 SSH 服务器的配置文件,启用密码认证,然后重启 SSH 服务。
步骤一:编辑 SSH 配置文件
使用文本编辑器(如 vi 或 nano)以 root 权限打开 SSH 服务器的配置文件。配置文件通常位于:
/etc/ssh/sshd_config
找到关于密码认证的配置行。它可能显示为:
#PasswordAuthentication yes
或者
PasswordAuthentication no
你需要确保该行配置为:
PasswordAuthentication yes
如果该行被注释(以 # 开头),请删除 # 符号以取消注释。如果其值为 no,请将其改为 yes。
步骤二:重启 SSH 服务
保存配置文件后,需要重启 SSH 服务以使更改生效。根据你的系统,可以使用以下命令之一:
- 使用 systemd 的系统(如 CentOS 7+/Ubuntu 16.04+):
systemctl restart sshd
- 使用 SysV init 的系统(如 CentOS 6):
service sshd restart
或者使用原文中提到的路径(某些旧式系统):
/etc/init.d/sshd restart
步骤三:重新连接测试
完成上述步骤后,再次尝试使用 FileZilla 通过 SFTP 连接主机,此时应能正常使用密码进行认证登录。
补充说明与安全建议
启用密码认证虽然解决了连接问题,但从安全角度考虑,使用公钥认证是更佳实践。如果你希望保持更高的安全性,建议:
- 为你的用户生成 SSH 密钥对。
- 将公钥上传到服务器的
~/.ssh/authorized_keys文件中。 - 在 FileZilla 的站点管理器设置中,指定你的私钥文件路径进行认证。
- 在确认公钥认证工作正常后,可以将
PasswordAuthentication重新设置为no以禁用密码登录,提升服务器安全。
如果你在修改配置后问题依旧,请检查服务器防火墙或安全组规则是否放行了 SSH(默认端口 22)的连接。