【问题标题】:Navicat doesn't recognize new entries in known_hosts file on Mac and cannot connect to remote serverNavicat 无法识别 Mac 上 known_hosts 文件中的新条目并且无法连接到远程服务器
【发布时间】:2020-09-11 17:39:06
【问题描述】:

2022 年 2 月更新:此问题可能已在更新的版本中得到修复。在接受的解决方案中查看 cmets。

总结:

与 Navicat 中远程数据库的现有连接正在使用 SSH > 主机字段的域名。在建立一个新的远程服务器并将域指向新的 IP 地址(并​​设置数据库和用户,以及将您的公共 RSA 密钥添加到新服务器)之后,Navicat 不信任来自服务器的密钥哈希。替换 ~/.ssh/known_hosts 中的条目没有帮助。

重现步骤:

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

预期:

  • 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 数据并授权连接?

【问题讨论】:

    标签: mysql postgresql remote-server navicat known-hosts


    【解决方案1】:

    问题:

    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) 或类似错误,请检查身份验证方法选择,如果您使用“公钥”或“密码和公钥”,请单击“私钥”文件导航器并重新选择与您添加到远程服务器的公钥匹配的私钥之一。

    【讨论】:

    • 在 Navicat for MySql(可能在所有较新的版本中)它使用位于~/.sshknown_hosts。从那里删除线将完成工作。
    • @RicardoMartins 啊,这是个好消息。他们一定在更新的版本中修复了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多