SSH隧道
Metabase可以通过首先连接到数据仓库与Metabase之间服务器,然后通过该连接作为桥梁连接到数据仓库,从而连接到某些数据库。这使得在某些情况下,即使无法使用Metabase也能连接到某些数据仓库。
何时使用SSH隧道
通常,SSH隧道有两个基本用例
- 当无法建立直接连接时。
- 当直接连接因安全策略而被禁止时。
有时,当数据仓库位于企业环境中时,由于防火墙和入侵防御系统等安全设备,直接连接会被阻止。堡垒主机提供了一种选项,即首先连接到受保护网络边缘的计算机,然后,从堡垒主机计算机建立第二个连接到内部网络中的数据仓库,实际上是将这两个连接拼接在一起。使用SSH隧道功能,Metabase可以自动化此过程。
Metabase Cloud目前不支持数据库的VPN连接。要连接到私有网络中的数据库,您可以使用SSH隧道。
如何使用SSH隧道
通过堡垒主机连接时
- 对“使用SSH隧道进行数据库连接”参数回答“是”。
- 在
Host
参数中输入数据仓库的网络内部名称。 - 在
Port
参数中输入网络内部看到的数据仓库端口。 - 在
SSH隧道主机
参数中输入堡垒主机的网络外部名称(或您所在的位置)。 - 在
SSH隧道端口
参数中输入网络外部的SSH端口。这通常为22,无论您连接到哪个数据仓库。
对于身份验证,您有两个选项
-
使用用户名和密码
- 在
SSH隧道用户名
和SSH隧道密码
字段中,输入您用于登录堡垒主机的用户名和密码。
- 在
-
使用SSH密钥(PKI身份验证)
- 选择
SSH身份验证
选项为“SSH密钥”。 - 将SSH私钥的内容粘贴到
SSH私钥
字段。 - 如果您的密钥有一个密码,请将其输入到
SSH私钥的密码
字段。
- 选择
如果您无法连接,可以通过直接使用ssh或旧版Windows系统上的PuTTY连接到SSH服务器/堡垒主机来测试您的SSH凭据。
ssh <SSH tunnel username>@<SSH tunnel host> -p <SSH tunnel port>
另一种直接连接不可能的常见情况是连接到仅本地可访问且不允许远程连接的数据仓库。在这种情况下,您将打开一个到数据仓库的SSH连接,然后从那里连接回同一台计算机。
- 对“使用SSH隧道进行数据库连接”参数回答“是”。
- 在
Host
参数中输入localhost
。这是服务器的名称。 - 在
Port
参数中输入您如果坐在数据仓库主机系统旁边会使用的相同值。 - 在
SSH隧道主机
参数中输入网络外部的数据仓库名称(或您所在的位置)。 - 在
SSH隧道端口
参数中输入网络外部的SSH端口。这通常为22,无论您连接到哪个数据仓库。 - 选择上述描述的身份验证方法(用户名和密码或SSH密钥)。
如果您遇到连接问题,请通过使用ssh或在旧版Windows系统上使用PuTTY手动连接来验证SSH主机端口和密码。
间接连接的缺点
虽然使用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 [email protected]
这允许您使用SSH包含的所有功能。如果您经常这样做,请告诉我们,我们可以考虑通过Metabase使您的流程更加方便。
进一步阅读
阅读其他Metabase版本的文档。