为了使与数据库的连接更加安全,某些服务需要使用 SSH 或 SSL。

SSL

以下过程描述了适合大多数数据库的 SSL 配置。对于某些数据库,您需要使用另一种方法来成功连接。

使用 SSL 连接到数据库

  1. 在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标
  1. 在“数据源”选项卡上,选择要修改的数据源。
  2. 单击SSH/SSL选项卡并选择使用 SSL复选框。
  3. 在CA 文件字段中,导航到 CA 证书文件(例如mssql.pem)。
  4. 在客户端证书文件字段中,导航到客户端证书文件(例如client-cert.pem)。
  5. 在客户端密钥文件字段中,导航到客户端密钥文件(例如client-key.pem)。
  6. 从模式列表中,选择验证模式:

    • Require:验证服务器是否接受此 IP 地址的 SSL 连接并识别客户端证书。
    • 验证 CA:通过检查证书链直到存储在客户端上的根证书来验证服务器。
    • 完整验证:验证服务器主机以确保它与存储在服务器证书中的名称匹配。如果无法验证服务器证书,则 SSL 连接失败。
  7. 要确保与数据源的连接成功,请单击测试连接。

1.png

建议使用 PEM 证书。

使用自签名证书以及在某些情况下使用受信任的根实体颁发的证书时,您在使用最新的 JDBC 驱动程序版本时可能会遇到错误。如果您的 Java 密钥库不接受证书链,则 SSL 连接可能会失败。作为临时解决方案,尝试降级 JDBC 驱动(例如 MySQL 连接器需要切换到 5.1.40 版本。)

禁用与数据库的 SSL 连接

  1. 在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标
  2. 在“数据源”选项卡上,选择要修改的数据源。
  3. 单击SSH/SSL选项卡并清除使用 SSL复选框。
  4. 单击应用。

从其他数据源复制 SSL 设置

如果您为一个数据源配置了 SSL 设置,则可以将它们复制到另一个数据源。

  1. 在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标
  2. 在“数据源”选项卡上,选择要修改的数据源。
  3. 单击SSH/SSL选项卡并选择使用 SSL复选框。
  4. 单击Copy from ...链接并选择要复制的配置。

SSH

localhost

Secure Shell 或 SSH 是一种网络协议,用于加密客户端和服务器之间的连接。

所有创建的 SSH 连接都在项目中的所有数据源之间共享。如果您不想在项目之间共享连接,请在 SSH 连接设置中选中仅对该项目可见复选框。

使用 SSH 连接到数据库

  1. 在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标
  2. 选择要更改连接设置的数据源配置文件。
  3. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
  4. 单击添加 SSH 配置按钮 ( 添加 SSH 配置)。
  5. 在SSH对话框中,单击添加按钮。
  6. 如果您不想在项目之间共享配置,请选中仅对该项目可见复选框。
  7. 在Host、Username和Port字段中,指定您的连接详细信息。
  8. 从身份验证类型列表中,您可以选择身份验证方法:

    • 密码:使用密码访问主机。要在 GoLand 中保存密码,请选中保存密码复选框。
    • 密钥对(OpenSSH 或 PuTTY):通过密钥对使用SSH 身份验证。要应用此身份验证方法,您必须在客户端计算机上拥有私钥,在远程服务器上拥有公钥。GoLand 支持使用OpenSSH实用程序生成的私钥。

    指定存储您的私钥的文件的路径,并在相应的字段中输入密码(如果有)。要让 GoLand 记住密码,请选中保存密码复选框。

    • OpenSSH 配置和身份验证代理:使用由凭据帮助应用程序管理的 SSH 密钥(例如,Windows 上的Pageant或macOS 和 Linux 上的 ssh-agent )。

2.png

禁用与数据库的 SSH 连接

  1. 在数据库工具窗口(查看 | 工具窗口 | 数据库)中,单击数据源属性图标数据源属性图标
  2. 选择要更改连接设置的数据源配置文件。
  3. 单击SSH/SSL选项卡并清除使用 SSH 隧道复选框。
  4. 单击应用。

使用 PuTTY 创建 SSH 隧道 (Windows)

  1. 下载并运行最新版本的 PuTTY SSH 和 Telnet 客户端(从https://www.putty.org/下载客户端)。
  2. 在PuTTY 配置对话框中,导航到连接 | SSH | 授权。
  3. 在用于身份验证的私钥文件字段中,指定您的私钥文件的路径,然后单击打开。
  4. 在命令行窗口中,指定用于 SSH 隧道的用户名,然后按Enter。不要关闭命令行窗口。
  5. 在数据库工具窗口(视图|工具窗口|数据库)中,单击工具栏上的数据源属性图标数据源属性图标
  6. 选择要更改连接设置的数据源配置文件。
  7. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
  8. 从Auth type列表中,选择OpenSSH config and authentication agent。
  9. 在Proxy host、Proxy user和Port字段中,指定连接详细信息。
  10. 要确保与数据源的连接成功,请单击测试连接。

3.png

使用 Pageant 创建 SSH 隧道 (Windows)

Pageant 是 PuTTY、PSCP、PSFTP 和 Plink 的 SSH 身份验证代理。Pageant 会存储你的私钥,只要它在运行,它就会将解锁的私钥提供给 PuTTY 或 GoLand 等其他工具。您可以在 Windows 任务栏中找到选美图标。

  1. 下载最新版本的 Pageant(从https://www.putty.org/下载客户端)。
  2. 在 Windows 任务栏中,右键单击 Pageant 图标并选择Add Key。
  3. 在Select Private Key File对话框中,导航到私钥文件(PPK 文件)并单击Open。
  4. (可选)输入私钥密码并按Enter。
  5. 在数据库工具窗口(视图|工具窗口|数据库)中,单击工具栏上的数据源属性图标数据源属性图标
  6. 选择要更改连接设置的数据源配置文件。
  7. 单击SSH/SSL选项卡并选中使用 SSH 隧道复选框。
  8. 从Auth type列表中,选择OpenSSH config and authentication agent。
  9. 在Proxy host、Proxy user和Port字段中,指定连接详细信息。
  10. 要确保与数据源的连接成功,请单击测试连接。

4.png

使用 ssh-agent 创建 SSH 隧道(macOS 和 Linux)

在命令行中运行 ssh-agent 的所有命令。

ssh-agent
ssh-add ~/.ssh/id_rsa
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa
IdentityFileIdentityFile ~/.ssh/id_ed25519
ssh-add -L

5.png