修复 RcloneView 中的 SFTP 连接被拒绝和超时错误
RcloneView 中的 SFTP 错误几乎总是可以追溯到网络配置、身份验证设置或服务器端设置。本指南将逐一介绍每种常见原因及其解决方法。
SFTP(SSH 文件传输协议)是 rclone 中使用最广泛的远程类型之一,可将 RcloneView 连接到任何具有 SSH 访问权限的服务器——NAS 设备、Linux 服务器、共享主机和自托管基础设施。与云服务商 API 不同,SFTP 依赖于网络可达性、防火墙规则和 SSH 配置,因此故障点更多。以下是诊断和解决最常见 SFTP 问题的方法。

在一个地方管理和同步所有云端
RcloneView 是 rclone 的跨平台 GUI。通过清爽的可视化界面比较文件夹、传输或同步文件,并自动化多云工作流。
- 一键作业:复制 · 同步 · 比较
- 调度器与历史记录,实现可靠的自动化
- 支持 Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTP 等
核心功能免费。Plus 提供自动化功能。
常见 SFTP 错误信息
| 错误信息 | 可能原因 |
|---|---|
connection refused | SSH 服务未运行、端口错误或防火墙阻断 |
connection timed out | 防火墙丢弃数据包、服务器不可达或网络问题 |
ssh: handshake failed | SSH 密钥不匹配、算法不兼容或服务器端配置问题 |
permission denied (publickey) | 密钥文件错误、密钥未在服务器上授权或密码短语问题 |
permission denied (password) | 密码错误或服务器已禁用密码 验证 |
no supported methods remain | 服务器要求的身份验证方式未在 rclone 中配置 |
ssh: unable to authenticate | 未提供凭据或凭据被拒绝 |
too many authentication failures | SSH 代理在正确的密钥之前尝试了太多密钥 |
修复方法 1:连接被拒绝
“connection refused”错误表示 TCP 连接被主动拒绝。服务器的网络栈是可达的,但目标端口上没有任何进程在监听。
检查 SSH 是否正在运行
在远程服务器上运行 sudo systemctl status sshd。如果 SSH 未运行,使用 sudo systemctl start sshd && sudo systemctl enable sshd 启动它。
验证端口
默认 SSH 端口是 22,但许多服务器使用自定义端口。可以通过 grep -i "^Port" /etc/ssh/sshd_config 检查。在 RcloneView 中,确保 SFTP 远程的端口设置与之匹配。端口 22 与自定义端口(如 2222)不匹配是最常见的原因之一。
检查本地防火墙是否阻断
在服务器上,确认防火墙允许 SSH 端口的入站连接。可使用 sudo ufw status(Ubuntu/Debian)、sudo firewall-cmd --list-ports(RHEL/Fedora)或 sudo iptables -L -n | grep 22。如果端口被阻断,添加允许规则。
修复方法 2:连接超时
超时表示数据包已发送但未收到响应。这通常是网络层面的问题,而非服务器端配置问题。
网络可达性
从你的设备测试基本连通性:
ping server-hostname
telnet server-hostname 22
如果 ping 成功但 telnet 连接端口 22 失败,说明你与服务器之间存在防火墙阻断了 SSH 端口。
路由器和 NAT 防火墙
如果 SFTP 服务器位于 NAT 路由器后面,请确保已配置端口转发,将外部流量在 SSH 端口上转发到内部服务器 IP。如果没有端口转发,来自本地网络之外的连接将会超时。
ISP 或企业防火墙阻断
某些 ISP 和企业网络会阻断端口 22 的出站连接。可以尝试使用替代端口,或使用 VPN 绕过限制。
Rclone 中的超时调优
对于高延迟连接,rclone 的默认连接超时可能过短。可以通过添加 --contimeout 标志来增加该值。对于 SFTP 特有的服务器响应延迟,可以考虑将 --timeout 设置为更高的值(例如慢速服务器使用 5m)。
修复方法 3:SSH 密钥身份验证失败
基于密钥的身份验证是 SFTP 连接最安全、最推荐的方式,但配置错误也很常见。
验证密钥文件路径
在 RcloneView 中,SFTP 远程配置中有一个字段用于填写 SSH 密钥文件路径。请确保:
- 该路径指向私钥(例如
~/.ssh/id_rsa或~/.ssh/id_ed25519),而不是公钥。 - 文件存在,并且你的用户账户可以读取该文件。
- 密钥文件权限正确(Linux/macOS 上为
600)。
在服务器上授权该密钥
公钥必须列在服务器上的 ~/.ssh/authorized_keys 文件中。可以使用 cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys 追加,然后确保该文件权限为 600,.ssh 目录权限为 700。