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

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

前提条件

环境说明

本文以添加自建数据源为例,介绍 SSH Tunnel 的使用方法。本文案例中使用的环境如下:
提示

如果您使用 Windows 系统,请参见通过 SSH Tunnel 接入自建 MySQL 数据源(Windows)。

操作步骤

附录:Linux 系统生成 SSH Tunnel 密钥文件
注意:下列操作步骤均需要在数据源所在服务器的命令行窗口(终端)中执行。

常见问题

问:为什么我配置完 SSH Tunnel 后单击连接测试,提示 SSH 用户名或密钥不正确?

  • 目标数据源所在服务器中已安装并开启了 SSH 服务。
  • 目标数据源所在服务器的 SSH 配置文件(sshd_config)参数如下:
    提示
    sshd_config 文件路径通常为 /etc/ssh/sshd_config,文件修改方法:vim /etc/ssh/sshd_config。
    • AllowTcpForwarding yes
    • PubkeyAuthentication yes
    • AuthorizedKeysFile .ssh/authorized_keys

    • 数据源服务器版本:Linux version 4.4.180+
    • SSH 版本:OpenSSH_8.2p1
    • 数据源:MySQL 8.0 自建数据源
    1. 登录 NineData 控制台。
    2. 在左侧导航栏,单击数据源管理>数据源。
    3. 单击页面右上角的创建数据源,在创建数据源页面,根据下表配置参数。
    4. 单击创建数据源,完成数据源的添加。
    1. 执行 ssh-keygen -f <密钥文件名> 命令生成密钥文件,系统提示 Enter passphrase (empty for no passphrase): 时,您可以选择为该密钥文件设置密码(输入密码并按回车键)或不设置密码(直接按回车键)。
      提示
      该命令会生成如下两个文件:
      • <密钥文件名>:私钥,用于验证登录者身份。
      • <密钥文件名>.pub:公钥,安装在服务器,用于配对登录者提供的私钥。
    2. 输入 cat <密钥文件名>.pub >> ~/.ssh/authorized_keys 命令将公钥内容添加到 authorized_keys 文件的末尾。
      提示

      authorized_keys 文件的权限必须小于等于 600,即 -rw-------(仅文件属主可读写),否则可能导致连接失败。您可以在 ~/.ssh/ 目录执行 ll 或 ls -l 命令查看该文件的权限,如果权限未达到要求,可以执行 chmod 600 authorized_keys 修改该文件权限。

    • 您登录主机用的用户名或密码不正确。
    • 如果您使用密钥认证,请确保 authorized_keys 文件的权限小于等于 600,您可以执行 chmod 600 ~/.ssh/authorized_key 命令变更该文件的权限。