通过 SSH Tunnel 接入自建 MySQL 数据源(Windows)

NineData 支持通过多种连接方式添加数据源,本文详细介绍如何通过 SSH Tunnel 进行添加。

前提条件

目标数据源所在服务器中已安装并开启了 MySQL 服务。

环境说明

本文以添加自建数据源为例,介绍 SSH Tunnel 的使用方法。本文案例中使用的环境如下:
  • 数据源服务器版本:Windows 11(10.0.22621.963)
  • SSH 版本:OpenSSH_for_windows_8.6p1
  • 数据源:MySQL 8.0 自建数据源
提示
  • 不同版本的 Windows 在操作上可能略有不同。
  • 2018 年 4 月份之前发布的 Windows 系统中不包含 OpenSSH,您需要手动安装。最新版安装包下载地址:官方 Github。
  • 如果您使用 Linux 系统,请参见通过 SSH Tunnel 接入自建 MySQL 数据源(Linux)。

步骤一:添加并启动 SSH 服务

SSH 服务包含 OpenSSH Authentication Agent 和 OpenSSH SSH Server 两个服务,其中 OpenSSH Authentication Agent 默认已安装好,您只需根据本操作步骤安装 OpenSSH SSH Server 并启动两个服务即可。
  1. 键盘键入Win+R组合键打开运行窗口,输入 fodhelper,并单击确定,打开可选功能窗口。
  2. 单击添加可选功能右侧的查看功能,在搜索框中输入 SSH,然后选中 OpenSSH 服务器右侧的复选框,单击下一步
    提示
    如果未找到任何结果,则您可能已经添加了 OpenSSH 服务器服务,可以顺着本步骤接着往下走。
  3. 在确认页面单击安装,并等待服务安装完成。安装完成后,需要重启您的计算机。
  4. 重启进入系统后,键盘键入Win+R组合键打开运行窗口,输入 services.msc,并单击确定,打开服务窗口。
  5. 在服务列表中找到 OpenSSH Authentication Agent 和 OpenSSH SSH Server 服务,分别将两个服务的启动类型更改为自动并启动服务。
    操作步骤
    1. 双击目标服务,在弹出的属性窗口中(常规页签),单击启动类型右侧的下拉框,在下拉列表中选择自动
    2. 服务状态区域,如果状态为已停止,单击启动,并单击确定。如果状态为正在运行,则直接单击确定
  6. 键盘键入Win+R组合键打开运行窗口,输入 cmd,并单击确定,打开命令行,输入 netstat -an,查看 22 端口是否处于被监听的状态。当您在返回结果中找到如下结果时,代表 SSH 服务启动成功。
        TCP         [::]:22           [::]:0          LISTENING
    
     

步骤二:配置 sshd_config 文件

  1. 用文本编辑器(例如记事本)打开 C:\ProgramData\ssh 目录下的 sshd_config 文件。
    提示
    ProgramData 目录默认隐藏,您需要单击文件资源管理器中的 查看 > 显示 > 隐藏的项目,才能显示隐藏中的目录。
  2. 根据下表进行配置
  3. 重启 SSH Server 服务。
  4. 提示
    重启方法:
    1. 键盘键入Win+R组合键打开运行窗口,输入 services.msc,并单击确定
    2. 在服务列表中找到 OpenSSH SSH Server 服务并双击,在弹出的属性窗口中(常规页签),依次单击停止启动即可。

步骤三:生成 SSH Tunnel 密钥文件并将公钥加入到白名单文件

  1. 键盘键入Win+R组合键打开运行窗口,输入 cmd,并单击确定,打开命令提示符窗口。
  2. 执行 ssh-keygen -f <密钥文件名> 命令生成密钥文件,系统提示 Enter passphrase (empty for no passphrase): 时,您可以选择为该密钥文件设置密码(输入密码并按回车键)或不设置密码(直接按回车键)。
    提示
    该命令会生成如下两个文件:
    • <密钥文件名>:私钥,用于验证登录者身份。
    • <密钥文件名>.pub:公钥,安装在服务器,用于配对登录者提供的私钥。
  3. 通过文本编辑器(例如记事本)打开<密钥文件名>.pub 文件,将里面的内容完全复制,并粘贴到 C:\Users<您的系统登录名.ssh\authorized_keys 文件中(如果不存在,请手动在该目录下创建同名文件,请注意无后缀名)。
    提示
    • 请确保 authorized_keys 文件的权限主体仅为 SYSTEMAdministrators您当前登录系统的用户,否则会导致连接失败。您可以通过如下方法查看文件权限:
    • 删除权限主体的方式(接查看文件权限操作):
    1. 单击安全页签右下方的高级,单击禁用继承,在弹出窗口中,单击将已继承的权限转换为此对象的显式权限
    2. 选中权限条目中不需要的条目,单击删除,确保剩余的权限主体为 SYSTEMAdministrators您当前登录系统的用户,单击确定
    3. 右键单击 C:\Users<您的系统登录名>.ssh 目录下的 authorized_keys 文件,单击属性
    4. 单击安全页签,查看组或用户名(G) 下方框内的权限主体。如果有多余主体,则需要手动删除。

步骤四:在 NineData 控制台添加数据源

  1. 登录 NineData 控制台。
  2. 在左侧导航栏,单击数据源管理>数据源
  3. 创建数据源页面,根据下表配置参数。
  4. 单击创建数据源,完成数据源的添加。