Navicat 无法识别 Mac 上known_hosts文件中的新条目,也无法连接到远程服务器



更新 2022 年 2 月:此问题可能在较新版本中已修复。请参阅有关已接受解决方案的评论。

总结:

与 Navicat 中远程数据库的现有连接正在使用 SSH> Host 字段的域名工作。在构建新的远程服务器并将域指向新的 IP 地址(并设置数据库和用户,以及将您的公共 RSA 密钥添加到新服务器(后,Navicat 不信任来自服务器的密钥哈希。替换~/.ssh/known_hosts中的条目无济于事。

重现步骤:

  • 将远程数据库的域指向新的 IP 地址
  • 将您的 RSA 公钥添加到远程服务器上的授权密钥中
  • 在远程服务器上添加远程数据库和用户
  • 在终端中,使用域 ssh 连接到新的远程服务器,然后按照提示将新服务器添加到known_hosts文件中
  • 在 Navicat 中(特别是 Navicat Essentials for PostGreSQL,但此问题将适用于 Mac 上 Navicat 套件中的任何应用程序(编辑与远程服务器的现有连接
  • 在"编辑连接..."窗口,点击"测试连接">

预期:

  • Navicat 使用更新的 ~/.ssh/known_hosts 文件来授权连接到远程服务器

实际:

  • Navicat 无法连接

错误:

The server key has changed. Either you are under attack or the administrator changed the key.
New server key hash:...

问题:

如何讓 Navicat 接受新的known_hosts資料並授權連線?

问题:

Navicat 使用与操作系统不同的known_hosts文件。因此,更新 ~/.ssh/known_hosts 不会影响 Navicat 与远程服务器的连接。

溶液:

  1. 可选解决方法:
    • 在 Navicat 中,编辑数据库连接
    • 在 SSH 选项卡上,将主机字段从域更改为新 IP 地址
  2. 修复:
    • 在终端中,运行sudo find ~ -name known_hosts
    • 结果将包括类似以下内容(以 Navicat Essentials for PostgreSQL 为例(:/Users/<user>/Library/Containers/com.prect.NavicatEssentialsForPostgreSQL12/Data/.ssh/known_hosts
    • 编辑该文件并删除以远程服务器的域开头的行
    • 返回 Navicat 并再次单击"测试连接"。连接应该有效。
    • 如果您看到错误:Access denied for 'publickey'. Authentication that can continue: publickey,password (101203)或类似错误,请检查身份验证方法选项,如果您使用的是"公钥"或"密码和公钥",请单击"私钥"文件导航器,然后重新选择与您添加到远程服务器的公钥匹配的私钥之一。

相关内容

  • 没有找到相关文章

最新更新