navicat for mac 不支持 pageant 和 .ppk 文件,因其 ssh 实现仅依赖 openssh 工具链;需将 .ppk 转为 openssh 格式(如 id_rsa_mac),用 ssh-add -k 加入钥匙串,并从终端启动 navicat 以继承 ssh_auth_sock 环境变量。

Mac 版 Navicat 17 不支持 Pageant,也无法直接使用 PuTTY 的 ppk 密钥文件进行 SSH 登录。 这是根本性限制,不是配置问题。Pageant 是 Windows 平台专属的 PuTTY 认证代理,macOS 上没有等效原生组件,Navicat for Mac 也从未集成对 Pageant 或 .ppk 格式的解析能力。
为什么 Navicat for Mac 无法识别 Pageant 或 .ppk 文件
Navicat for Mac 的 SSH 实现完全基于系统级的 OpenSSH 工具链(ssh, ssh-add, ssh-agent),它只读取标准 OpenSSH 格式的私钥(如 id_rsa, id_ed25519),不调用任何 PuTTY 相关库。即使你把 Windows 上的 navicat170_premium_cs_x64.exe 拷贝到 Mac,它也根本不会运行——架构都不兼容。
- Pageant 在 macOS 上不存在对应进程或 IPC 接口,Navicat 无从“连接”
-
.ppk是 PuTTY 自定义二进制格式,OpenSSH 默认不识别;Navicat for Mac 不做格式转换 - 官方文档和 release notes 中从未提及 Pageant 支持,所有 SSH 配置项里也没有相关字段
替代方案:用 OpenSSH 标准密钥 + ssh-agent 管理
要在 Mac 上实现类似 Pageant 的“一次解锁、多处复用”效果,必须改用 OpenSSH 原生流程。关键不是模仿 Pageant,而是达成同等目的:
- 把你的
.ppk文件转成 OpenSSH 格式:puttygen your-key.ppk -O private-openssh -o id_rsa_mac
- 确保私钥权限严格:
chmod 600 id_rsa_mac - 添加到系统 agent:
ssh-add -K id_rsa_mac(-K表示存入钥匙串,避免每次输密码) - 在 Navicat 连接设置中,SSH 页签 → “认证方法”选“Public Key”,“Private Key File”指向
id_rsa_mac,留空“Passphrase”(因已由钥匙串托管)
跨平台密钥同步的实际约束
所谓“与 Win 端统一”,仅限于密钥逻辑一致(同一对公私钥),而非文件或代理互通:
- Windows 端继续用 Pageant +
.ppk,Mac 端必须用ssh-agent+ OpenSSH 格式密钥 - 不能共享同一个密钥文件路径或进程状态;但可共享同一份私钥内容(经格式转换后)
- Navicat for Mac 的连接配置中,“SSH Host”“Port”“Username”可完全照搬 Windows 配置,唯独“Private Key File”路径和格式必须重设
- 若用 iCloud 或 Git 同步密钥,务必确认
id_rsa_mac权限未被破坏(同步工具可能重置为 644,导致 ssh-add 拒绝加载)
真正容易被忽略的是:Navicat for Mac 启动时并不会自动触发 ssh-agent 加载,它只在你点击“测试连接”时才去读取当前 shell 环境中的 SSH_AUTH_SOCK。如果你从 Dock 或 Spotlight 启动 Navicat,它继承的是 GUI 环境,而 ssh-agent 通常只在终端会话中启动并导出变量——这意味着即使你刚在 Terminal 里 ssh-add 成功,Navicat 仍可能报错“Permission denied (publickey)”。解决办法只有一个:从终端启动它:open -a "Navicat Premium",确保环境变量透传。











