修复 NetDrive 中的 SFTP 身份验证失败 — 密钥、密码与端口

阅读时间 6 分钟 troubleshooting sftp
Tayson
TaysonSenior Engineer
排查 NetDrive 中的 SFTP 身份验证错误:SSH 密钥格式问题、端口设置错误、主机密钥验证失败,以及 Windows 和 macOS 上的密码被拒绝问题。

你在 NetDrive 中添加了一个 SFTP 连接,点击了连接,却得到了身份验证错误——或者驱动器在三十秒后无声地超时了。SFTP 身份验证失败是挂载 Linux 服务器、NAS 设备和共享主机账户时最常见的障碍。几乎每一个案例都能追溯到三大根源之一:凭据或主机设置错误、SSH 密钥格式不匹配,或主机密钥缓存中的过期条目。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

将任意 SFTP 服务器挂载为本地驱动器

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • 同时支持密码和 SSH 密钥身份验证
  • 适用于 Linux 服务器、Synology/QNAP NAS 以及各类主机账户
  • 支持 Windows 和 macOS
WindowsmacOS
下载 NetDrive →

免费试用。提供终身与订阅方案。

将症状对应到原因

在改动任何设置之前,先确认你遇到的是哪种症状:

症状最可能的原因
立即出现”身份验证失败”用户名、密码错误,或密钥未被接受
挂起 30–60 秒后超时主机名或端口错误;防火墙阻挡了 22 端口
”主机密钥验证失败”首次连接该主机,或服务器指纹已变更
挂载后短暂运行即断开服务器端空闲超时或网络不稳定

本文将介绍前三种情况的解决方法。如果你的挂载在空闲一段时间后断开,修复 macOS 睡眠后挂载断开问题 中的保活模式同样适用于 SFTP。

修复 1:核实凭据与主机设置

打开 NetDrive 的 Drive Manager,选择你的 SFTP 驱动器,点击 Edit。逐一仔细检查以下字段:

  • Host —— 服务器的主机名或 IP 地址,不要带任何 sftp:// 前缀。NetDrive 会自动添加协议。此处末尾多一个斜杠会导致解析失败。
  • Port —— SFTP 默认端口为 22。如果你的服务器管理员将 SSH 移到了非标准端口(一种常见的加固措施),请显式填写该端口。当服务器监听 2222 端口而你却连接 22 端口时,会产生超时而非”身份验证失败”提示——正因如此,这一点常被忽略。
  • Username —— 区分大小写。在 Linux 系统上,Adminadmin 是不同的账户。
  • Password —— 即使字段看起来已填写,也请重新输入一次。已保存的凭据在服务器端密码轮换后可能会悄然失效。

NetDrive 挂载状态面板,显示当前连接状态与驱动器健康情况

更新任意字段后,请点击 Connect 而不仅仅是保存。NetDrive 只在实际发起连接尝试时才验证凭据,保存时不会验证。

在 NetDrive 中连接前核实 SFTP 服务器 IP 地址

修复 2:SSH 密钥格式问题

SSH 密钥身份验证比密码更安全,但 NetDrive 要求私钥采用 PEM 格式——即以 -----BEGIN RSA PRIVATE KEY----- 开头的 RSA 密钥,或以 -----BEGIN EC PRIVATE KEY----- 开头的 ECDSA 密钥。现代 OpenSSH 版本默认会生成较新格式的密钥(-----BEGIN OPENSSH PRIVATE KEY-----),而这种格式 NetDrive 并不接受。

要在生成密钥的那台机器上将 OpenSSH 格式的密钥转换为 PEM 格式:

ssh-keygen -p -m PEM -f ~/.ssh/id_rsa

此命令会就地重写私钥文件。运行前请先备份。

在 NetDrive 的 SFTP 驱动器设置中:

  1. Auth type 设置为 Key,而不是 Password
  2. Private key file 下,浏览并选择本地机器上的 .pem 私钥文件。
  3. 如果密钥设有口令,请在 Key passphrase 中输入。
  4. 确认对应的公钥已存在于远程服务器的 ~/.ssh/authorized_keys 中。

一个快速的服务器端检查方法:在终端运行 ssh -v user@hostname,可以看到服务器提供了哪些身份验证方式,以及它接受哪些密钥。输出中包含 Offering public keyServer accepts key 的行,就能在完全不涉及 NetDrive 的情况下确认密钥配对是否正确。

修复 3:过期的主机密钥验证

当 NetDrive 首次连接某个 SFTP 主机——或者由于硬件更换、系统重装、IP 地址被重新分配等原因导致服务器的 SSH 指纹发生变化——它可能会因主机密钥错误而拒绝连接。

NetDrive 会将已接受的主机密钥存储在其内部的 known-hosts 缓存中。要清除过期条目:

  1. Drive Manager 中,选择你的 SFTP 驱动器并打开 Edit
  2. 在高级设置面板中找到 Clear known hostsReset host key 选项。
  3. 重新连接。NetDrive 会提示你接受新的指纹。

在接受已变更的指纹之前,请从一台已能通过 SSH 访问该服务器的机器上运行 ssh-keyscan -t rsa hostname 独立核实,然后将输出与 NetDrive 显示的内容进行比对。在生产服务器上接受一个意外的指纹,会带来实质性的安全风险。

在 NetDrive 中连接前核实 SFTP 服务器的端口号

总结

NetDrive 中的 SFTP 身份验证失败,几乎总是归结为凭据、密钥格式或主机配置问题,而非 NetDrive 本身的问题。按顺序逐一排查这三项——先凭据,再密钥格式,最后是主机密钥缓存——你就能在几分钟内定位问题所在。如果这些方法都无法解决问题,请在 NetDrive 首选项中启用详细日志记录,并将日志发布到 support.bdrive.com 以便进一步诊断。

相关阅读:修复 WebDAV Synology 连接错误修复 NetDrive 中的 S3 访问被拒绝错误

— Tayson, NetDrive