通过 SSH Tunnel 接入自建 MySQL 数据源(Linux)
NineData 支持通过多种连接方式添加数据源,本文详细介绍如何通过 SSH Tunnel 进行添加。
前提条件
目标数据源所在服务器中已安装并开启了 SSH 服务。
目标数据源所在服务器的 SSH 配置文件(sshd_config)参数如下:
AllowTcpForwarding yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
提示sshd_config
文件路径通常为/etc/ssh/sshd_config
,文件修改方法:vim /etc/ssh/sshd_config
。
环境说明
本文以添加自建数据源为例,介绍 SSH Tunnel 的使用方法。本文案例中使用的环境如下:
数据源服务器版本:Linux version 4.4.180+
SSH 版本:OpenSSH_8.2p1
数据源:MySQL 8.0 自建数据源
如果您使用 Windows 系统,请参见通过 SSH Tunnel 接入自建 MySQL 数据源(Windows)。
操作步骤
登录 NineData 控制台。
在左侧导航栏,单击数据源管理>数据源。
单击页面右上角的创建数据源,在创建数据源页面,根据下表配置参数。
参数 说明 数据源名称 输入数据源的名称,为了方便后续查找和管理,请尽量使用有意义的名称。 数据源位置 选择公网/自建/他云。 环境 根据该数据源的实际业务用途进行选择,作为数据源的环境标识。默认提供生产和开发环境,同时支持您创建自定义环境。
说明:在组织模式下,数据库环境还可应用于权限策略管理,例如,默认情况下的生产环境管理员角色仅支持访问生产环境下的数据源,无法访问其他环境的数据源。更多信息,请参见管理角色。数据库类型 选择 MySQL。 连接方式 选择 SSH Tunnel 连接。 SSH 主机 输入目标数据源所在服务器的 IP 或者域名,以及对应的端口号(SSH 服务的默认端口号为 22)。
说明:您的服务器 IP 地址必须是公网地址。SSH 认证方式 - 密码认证:通过 SSH 用户名(即服务器的登录名)和密码(即服务器的登录密码)进行连接。
- 密钥认证(推荐):通过 SSH 用户名和密钥文件进行连接,该选项需要您生成密钥文件。如何生成,请参见附录。
SSH 用户名 输入目标数据源所在服务器的登录用户名。 密码 SSH 认证方式为密码认证时显示,输入目标数据源所在服务器的登录密码。
说明:输入完成后,您需要单击右侧的连接测试,可能出现如下两种结果:- 提示连接成功:表示数据源连接成功。
- 提示错误信息:表示连接失败,您需要根据提错误示排查故障原因并重试。
密钥文件 SSH 认证方式为密钥认证时显示,您需要单击上传文件上传私钥文件,即无后缀名的密钥文件。如果您还未创建,请参见附录。 口令 SSH 认证方式为密钥认证时显示,输入生成密钥文件时设置的密码。如果您在密钥生成的步骤 1 中未设置密码,此处请留空。
说明:输入完成后,您需要单击右侧的连接测试,可能出现如下两种结果:- 提示连接成功:表示 SSH Tunnel 已打通。
- 提示错误信息:表示连接失败,您需要根据提错误示排查故障原因并重试。
连接地址 数据源的连接地址和端口。
说明:由于您已通过 SSH Tunnel 连接到您数据源所在的服务器,因此,可以直接输入localhost
或127.0.0.1
,并填入目标数据源的端口号即可。用户名 登录数据源的用户名。 密码 登录数据源的用户名对应的密码。
说明:输入完成后,您需要单击右侧的连接测试,可能出现如下两种结果:- 提示连接成功:表示该数据源已可以正常访问。
- 提示错误信息:表示连接失败,您需要根据错误提示排查故障原因并重试。
接入地域 选择离您数据源所在地最近的地域,可有效降低网络延迟。 加密传输 是否使用 SSL 加密方式访问数据源。数据源如果强制 SSL 加密连接,则必须开启本开关,否则连接失败。
单击右侧的开关可开启或关闭加密传输。单击加密传输左侧的>可以展开详细配置。
说明:- 各类型数据源支持的选项不同,请以控制台为准。
- SSL 的配置方法请参见官方文档:配置 MySQL 加密连接
单击创建数据源,完成数据源的添加。
附录:Linux 系统生成 SSH Tunnel 密钥文件
注意:下列操作步骤均需要在数据源所在服务器的命令行窗口(终端)中执行。
执行
ssh-keygen -f <密钥文件名>
命令生成密钥文件,系统提示Enter passphrase (empty for no passphrase):
时,您可以选择为该密钥文件设置密码(输入密码并按回车键)或不设置密码(直接按回车键)。提示该命令会生成如下两个文件:
<密钥文件名>
:私钥,用于验证登录者身份。<密钥文件名>.pub
:公钥,安装在服务器,用于配对登录者提供的私钥。
输入
cat <密钥文件名>.pub >> ~/.ssh/authorized_keys
命令将公钥内容添加到authorized_keys
文件的末尾。提示authorized_keys
文件的权限必须小于等于600
,即-rw-------
(仅文件属主可读写),否则可能导致连接失败。您可以在~/.ssh/
目录执行ll
或ls -l
命令查看该文件的权限,如果权限未达到要求,可以执行chmod 600 authorized_keys
修改该文件权限。
常见问题
问:为什么我配置完 SSH Tunnel 后单击连接测试,提示 SSH 用户名或密钥不正确
?
- 您登录主机用的用户名或密码不正确。
- 如果您使用密钥认证,请确保
authorized_keys
文件的权限小于等于 600,您可以执行chmod 600 ~/.ssh/authorized_key
命令变更该文件的权限。