SSH 隧道

Metabase 可以通过首先在 Metabase 和数据仓库之间建立一个中间服务器连接,然后使用该连接作为桥梁连接到数据仓库来连接某些数据库。这使得在通常情况下无法使用 Metabase 的情况下连接某些数据仓库成为可能。

何时使用 SSH 隧道

通常,SSH 隧道有两种基本用例

  • 当直接连接不可能时。
  • 当由于安全策略禁止直接连接时。

有时,当数据仓库位于企业环境中时,防火墙和入侵防御系统等安全设备会阻止直接连接。堡垒机提供了首先连接到受保护网络边缘的计算机的选项,然后从该堡垒机计算机建立到内部网络中数据仓库的第二个连接,基本上将这两个连接缝合在一起。通过使用 SSH 隧道功能,Metabase 可以自动执行此过程。

Metabase Cloud 目前不支持 VPN 连接到数据库。要连接到私有网络中的数据库,您可以改用 SSH 隧道。

如何使用 SSH 隧道

通过堡垒机连接时

  • 将“使用 SSH 隧道进行数据库连接”参数回答为“是”。
  • Host 参数中输入数据仓库从网络内部看到的 IP 地址。
  • Port 参数中输入数据仓库从网络内部看到的端口。
  • SSH tunnel host 参数中输入从网络外部(或您所在的位置)看到的堡垒机的外部名称。
  • SSH tunnel port 参数中输入从网络外部看到的 SSH 端口。这通常是 22,无论您连接到哪个数据仓库。

对于身份验证,您有两种选择

  • 使用用户名和密码

    • SSH tunnel usernameSSH tunnel password 字段中,输入您用于登录堡垒机的用户名和密码。
  • 使用 SSH 密钥(PKI 身份验证)

    • SSH authentication 选项中选择 SSH Key。
    • 将您的 SSH 私钥内容粘贴到 SSH private key 字段中。
    • 如果您的密钥有密码,请输入到 Passphrase for the SSH private key 字段中。

如果您无法连接,请通过直接使用 ssh 连接到 SSH 服务器/堡垒机来测试您的 SSH 凭据。

ssh <SSH tunnel username>@<SSH tunnel host> -p <SSH tunnel port>

另一种常见的直接连接不可能的情况是连接到仅本地可访问且不允许远程连接的数据仓库。在这种情况下,您将打开到数据仓库的 SSH 连接,然后从那里连接回同一台计算机。

  • 将“使用 SSH 隧道进行数据库连接”参数回答为“是”。
  • Host 参数中输入 localhost。这是服务器的名称。
  • Port 参数中输入与您直接坐在数据仓库主机系统上时使用的值相同的值。
  • SSH tunnel host 参数中输入从网络外部(或您所在的位置)看到的数据仓库的外部名称。
  • SSH tunnel port 参数中输入从网络外部看到的 SSH 端口。这通常是 22,无论您连接到哪个数据仓库。
  • 选择您的身份验证方法,如上所述(用户名和密码或 SSH 密钥)。

如果您在连接时遇到问题,请通过使用 ssh 或(在旧版 Windows 系统上使用 PuTTY)手动连接来验证 SSH 主机端口和密码。

注意:SSH 服务器必须将“AllowTcpForwarding”配置设置为“yes”才能使隧道工作。

注意:SSH 隧道主机的最佳实践是拒绝除已批准客户端之外的所有流量。Metabase 在此处列出了我们的 Metabase Cloud IP 地址白名单

间接连接的缺点

虽然使用 SSH 隧道可以使原本无法访问的数据仓库得以使用,但如果可能,几乎总是首选使用直接连接。

通过隧道连接有几个固有的限制

  • 如果由于您的计算机进入睡眠状态或更改网络而关闭了封闭的 SSH 连接,则所有已建立的连接也会关闭。这可能导致恢复连接在笔记本电脑暂停后出现延迟。
  • 它几乎总是更慢。连接必须通过额外的计算机。
  • 打开新的 SSH 连接需要更长的时间。
  • 通过同一 SSH 隧道进行的多个操作可能会互相阻塞。这会增加延迟。
  • 通过堡垒机的连接数量通常受组织策略的限制。
  • 某些组织有 IT 安全策略,禁止使用 SSH 隧道绕过安全边界。

直接运行 SSH

Metabase 中的 SSH 隧道功能作为 SSH 的便捷包装器存在,并自动化了通过隧道进行连接的常见情况。它还使无法获得 shell 访问权限的系统也能建立连接。Metabase 使用内置的 SSH 客户端,不依赖于已安装的系统 SSH 客户端。这允许从无法手动运行 SSH 的系统进行连接。这也意味着 Metabase 无法利用系统提供的身份验证服务,例如 Windows 域身份验证或 Kerberos 身份验证。

如果您需要使用 Metabase 未启用的方法进行连接,通常可以通过直接运行 SSH 来实现。

ssh -Nf -L input-port:internal-server-name:port-on-server username@bastion-host.domain.com

这使您可以使用 SSH 的全部功能。如果您发现自己经常这样做,请告知我们,以便我们通过 Metabase 改进您的流程。

延伸阅读

阅读其他版本的 Metabase 的文档。

这有帮助吗?

感谢您的反馈!
想改进这些文档吗? 提交更改。
© . This site is unofficial and not affiliated with Metabase, Inc.