在Mac上,Navicat不识别已知_hosts文件中的新条目,也不能连接到远程服务器。

问题描述 投票:0回答:1

摘要:在Navicat中,一个现有的连接到远程数据库,使用SSH > Host字段的域名工作。

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

重现的步骤。

  • 将远程数据库的域名指向一个新的IP地址。
  • 将您的RSA公钥添加到远程服务器的授权密钥中。
  • 在远程服务器上添加远程数据库和用户。
  • 在Terminal中,使用域SSH进入新的远程服务器,并根据提示将新服务器添加到known_hosts文件中。
  • 在Navicat(特别是Navicat Essentials for PostGreSQL,但这个问题适用于Mac上的任何Navicat套件的应用程序)编辑现有的连接到远程服务器。
  • 在 "编辑连接... "窗口中的SSH选项卡上,点击 "测试连接"。
预期的。
  • Navicat 使用更新的 ~.sshknown_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 数据和授权连接?

mysql postgresql remote-server navicat known-hosts
1个回答
0
投票

问题:Navicat 使用一个不同的 known_hosts。

Navicat 使用了一个不同于操作系统的 known_hosts 文件。所以更新 ~.sshknown_hosts 并不影响 Navicat 连接到远程服务器。

解决方案。

  1. 可选的变通方法:在 Navicat,编辑数据库。
    • 在 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) 或类似,检查验证方法选择,如果你使用'公钥'或'密码和公钥',点击'私钥'文件导航器并重新选择一个与你添加到远程服务器的公钥匹配的私钥。
© www.soinside.com 2019 - 2024. All rights reserved.