SSH 可以工作,但 SFTP 不行

SSH 可以工作,但 SFTP 不行

我正在尝试在我的服务器上设置 SFTP,但遇到了麻烦。我已经可以使用密钥身份验证通过 SSH 顺利登录服务器,但当通过 SFTP 连接 FileZilla 时,我收到错误:Disconnected: No supported authentication methods available (server sent: publickey)。尝试使用sftpscp命令上传文件时,都出现类似的错误。

我现在已经关闭了密码验证,但我打开它进行了测试,但Authentication Failed在 SFTP 上却出现了错误。

我知道这篇文章之前已经发布过大约一百次了,但我找不到任何人遇到与我完全相同的错误。

答案1

核心问题是您的 SFTP 服务器需要 SSH 密钥身份验证才能正确允许连接。您提到了 FileZilla,所以我这样写了这个答案。

对于 Filezilla,您可以将其用于不受密码保护的 SSH 密钥:

  1. 打开 FileZilla 客户端。
  2. 在主屏幕顶部,单击“编辑”并选择“设置”。
  3. 在菜单左侧,展开“连接”部分并突出显示“SFTP”。

    SFTP 设置

  4. 点击[添加密钥文件...]按钮,浏览本地机器的目录并选择您的私钥文件。

  5. 然后,再次从 FileZilla 主屏幕顶部单击“文件”并选择“站点管理器”。
  6. 最后,在站点管理器的左侧,单击“新建站点”按钮,并在“我的站点”下输入一个唯一的名称,以便您将来可以轻松识别这个特定的远程服务器。

  7. 现在,在“常规”选项卡下,填写主机(使用 IP 地址或 FQDN)和端口字段(默认为 22)。

  8. 在协议下拉菜单中,选择 SFTP - SSH 文件传输协议。
  9. 在登录类型下拉菜单中,选择交互式。

如果您的 SSH 密钥受密码保护,那么您将需要使用其他东西。


这说,通常有一种方法可以在大多数 GUI 中使用 SFTP。在 Ubuntu 16.04 上,Nautilus 有一个“连接到服务器”按钮(大多数其他 GUI 文件浏览器都有类似的功能),您可以在其中指定它,sftp://user@remotelocation:22/path/on/server它应该与通常已经在运行并索引您的密钥的工具集成ssh-agent。然后它应该可以“工作”,而不必做任何有趣的事情,并遵守 SFTP 规则。

相关内容