必须通过navicat内置导出/导入流程迁移connections.ncx文件,直接复制会导致invalid connection file或连接列表为空;导出时须手动勾选“包含密码”,v16+需设置临时主密码,v15虽无需密码但跨设备可能因硬件指纹校验失败而丢密码;导入后ssh私钥路径、代理配置、中文编码及版本兼容性均需人工核对修正。
不能直接复制 connections.ncx 文件过去就用,必须走 navicat 内置导出/导入流程,否则 90% 情况下会报 invalid connection file 或连接列表为空。
导出时必须勾选「包含密码」并设临时主密码(v16+)
Navicat 默认不导出密码:v16+ 明确取消勾选,v15 灰显但实际也不含。即使你看到连接里显示星号,导出后目标端仍是空或星号,首次连接仍要输。
- 导出路径:
文件 → 导出连接,弹窗底部务必手动勾选Include password - v16+ 勾选后会强制要求设一个临时主密码(如
temp123),这个密码只用于本次解密,导入时需再次输入 - v15 不支持设临时密码,导出即加密,导入时无需额外密码,但跨设备后可能因硬件指纹校验失败而丢密码
导入后 SSH 私钥路径和代理配置几乎一定失效
connections.ncx 里存的是绝对路径,比如 macOS 上是 /Users/xxx/.ssh/id_rsa,Windows 上是 C:\Users\xxx\.ssh\id_rsa——目标机上路径不存在,连接测试卡在「SSH 连接失败」。
- 导入完成后,逐个打开连接 → 切到
SSH选项卡 → 手动重新指定私钥文件路径 - 即使用了密码认证,也要检查
SSH 用户名和密码字段是否为空(SSH 密码字段不随主密码一起导出) - HTTP/SOCKS 代理配置不会自动迁移,需对照源端截图或记忆重填
跨平台(macOS ↔ Windows)要防中文乱码和版本不兼容
旧版 Navicat(v14 及以下)在 Windows 上读 .ncx 默认按 GBK 解码,而文件本身是 UTF-8 编码,结果就是中文连接名变方块或被截断。
- 确保两端 Navicat 版本 ≥ v15(官方从 v15 起统一用 UTF-8 处理
.ncx) - v16.x 导出的
.ncx在 v17.0 上可能解析失败,不是 bug,是 Navicat 主动限制跨大版本兼容性;错误现象包括:导入后无反应、连接名全变成Connection_1、SSL 设置丢失 - 若必须用老版本或需保结构完整性,可改用
右键连接 → Export Connection → 勾选 Export as XML;XML 是纯文本、UTF-8 无 BOM,但不包含部分 SSL 配置和自定义分组结构
真正容易被忽略的不是操作步骤,而是环境依赖项——SSH 私钥路径、代理命令、跳板机配置、本地 OpenSSH 版本差异,这些都不会出现在 .ncx 里,迁移后必须人工核对。跨平台时,连换行符和路径分隔符都可能引发静默失败。











