# 配置 SSH 和 SSL

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com/zh-cn/help/idea/llms.txt).

为使与数据库的连接更安全，某些服务要求使用 SSH 或 SSL。

## SSL

以下过程介绍适用于大多数数据库的 SSL 配置。 对于某些数据库，需要使用其他方法才能成功连接。 可以在 DataGrip 文档中查看 [Cassandra](https://www.jetbrains.com/zh-cn/help/datagrip/how-to-connect-to-cassandra-with-ssl.html) 和 [Heroku Postgres](https://www.jetbrains.com/zh-cn/help/datagrip/how-to-connect-to-heroku-postgres.html) 的配置示例。

Procedure: 连接到支持 SSL 的数据库

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   数据源   选项卡上，选择要修改的数据源。

3. 点击   SSH/SSL   选项卡并选中   使用 SSL   复选框。

4. 在   CA 文件   字段中，导航到 CA 证书文件（例如，  `mssql.pem` ）。

5. 可以将证书文件字段留空，并使用信任库从其包含的证书中获取所需证书。 为此，请勾选   使用信任存储   复选框，并选择要使用的信任库。

* IDE ：使用 IDE 接受的证书。 可以在 `设置 | 外观＆行为 | 系统设置 | 服务器证书` 中添加新的已接受证书。

* JAVA ：使用 JAVA 信任库证书。

* 系统 ：使用系统信任库证书。

6. 在   客户端证书文件   字段中，导航到客户端证书文件（例如，  `client-cert.pem` ）。

7. 在   客户端密钥文件c   字段中，导航到客户端密钥文件（例如，  `client-key.pem` ）。

8. 从   模式   列表中选择验证模式：

|  |  |
| --- | --- |
|    需要    |  如果提供了证书，则验证服务器是否识别客户端证书。  |
|    验证 CA    |      * 如果提供了证书，则验证服务器是否识别客户端证书。    * 通过检查证书链直至存储在客户端的根证书来验证服务器。    |
|    完全验证    |      * 如果提供了证书，则验证服务器是否识别客户端证书。    * 通过检查证书链直至存储在客户端的根证书来验证服务器。    * 验证服务器主机以确保其与存储在服务器证书中的名称匹配。    |

如果任一证书无法验证，SSL 连接将失败。

9. 要确保与数据源的连接成功，请点击   测试连接  。

![连接到支持 SSL 的数据库](https://resources.jetbrains.com/help/img/idea/2026.3/db_connect_with_ssl.png)

> **Note:**
> 建议使用 PEM 证书。

> **Note:**
> 使用自签名证书时，以及在某些情况下使用由受信任根实体签发的证书时，使用最新的 JDBC 驱动程序版本可能会遇到错误。 如果您的 Java 密钥存储 不接受证书链，SSL 连接可能会失败。 作为临时解决方案，请尝试降级 JDBC 驱动程序（例如，对于 MySQL 连接器，需要切换到 5.1.40 版本）。

Procedure: 禁用与数据库的 SSL 连接

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   数据源   选项卡上，选择要修改的数据源。

3. 点击   SSH/SSL   选项卡，并清除   使用 SSL   复选框。

4. 点击   应用  。

Procedure: 从其他数据源复制 SSL 设置

如果已为一个数据源配置了 SSL 设置，可以将其复制到另一个数据源。

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 在   数据源   选项卡上，选择要修改的数据源。

3. 点击   SSH/SSL   选项卡并选中   使用 SSL   复选框。

4. 点击   复制自…  链接并选择您想要复制的配置。

## SSH

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

在 IntelliJ IDEA 中，可以通过以下方式之一创建 SSH 连接：

* [使用 IntelliJ IDEA SSH 隧道。](#ssh_tunnel) IDE 将使用您设置的 SSH 配置创建 SSH 隧道。

* [使用 PuTTy、Pageant 或 ssh-client 手动创建 SSH 隧道。](#ssh_tunnel_manually)

### IntelliJ IDEA SSH 隧道

IntelliJ IDEA 可以基于您设置的 SSH 配置创建 SSH 隧道。 要访问 SSH 配置设置，请按 `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) 打开设置并选择   工具 | SSH 配置  。

要为数据源使用 SSH 隧道，请在   数据源和驱动程序   对话框（ `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS))）的   SSH/SSL   选项卡中选中   使用 SSH 隧道   复选框。

> **Note:**
> 在大多数情况下，在   SSH/SSL   选项卡中设置 SSH 配置后，无需修改   常规   选项卡的设置，因为 IntelliJ IDEA 将连接到 SSH 隧道的本地端。 例外情况是手动创建 SSH 隧道时。 在这种情况下，需要在   常规   选项卡上将   主持人   设置为隔离网络中服务器的 IP 地址。
>
>
>
> 建立连接后，SSH 隧道主机名会在运行 SSH 服务器的机器上进行解析，因为由该服务器与数据库建立连接。

所有已创建的 SSH 连接会在项目中的所有数据源之间共享。 如果不希望在项目之间共享连接，请在 SSH 连接设置中选中   仅对该项目可见   复选框。

Procedure: 使用 SSH 连接到数据库

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 选择要为其设置 SSH 连接的数据源。

3. 点击   SSH/SSL   选项卡并选中   使用 SSH 隧道   复选框。

4. 点击 ![添加 SSH 配置](https://resources.jetbrains.com/help/img/idea/2026.3/app.general.ellipsis.svg)   添加 SSH 配置  。

5. 在   SSH 配置   对话框中，点击   添加   按钮。

6. 如果您不想在项目之间共享配置，请选择   仅对该项目可见   复选框。

7. 在   主持人   和   端口   字段中，指定连接详细信息。

8. 在   用户名   字段中输入用户名。

9. 本教程使用加密的私钥文件和公钥文件进行身份验证。 在   身份验证类型   列表中，可以选择一种身份验证方法：

* 密码 ：使用密码访问主机。 要将密码保存在 IntelliJ IDEA 中，请选中 保存密码 复选框。

* 密钥对（OpenSSH 或 PuTTY） ：使用 [SSH 认证](https://www.ssh.com/)与密钥对。 要应用此身份验证方法，您必须在客户端计算机上拥有私钥，并在远程服务器上拥有公钥。 IntelliJ IDEA 支持使用 [OpenSSH](https://www.openssh.com/) 工具生成的私钥。 指定存储您 私钥 的文件路径，并在相应字段中输入密码短语（如果有）。 要让 IntelliJ IDEA 记住该密码短语，请选中 保存密码短语 复选框。

* OpenSSH 配置和身份验证代理 ：使用管理您的 SSH 密钥的凭据助手应用程序，例如 [ssh-agent](https://en.wikipedia.org/wiki/Ssh-agent) 或 [Pageant（仅限 Windows）](https://the.earth.li/~sgtatham/putty/0.70/htmldoc/Chapter9.html#pageant)。 > **Tip:** > 如果您同时运行了 OpenSSH ssh-agent 和 Pageant，即使 ssh-agent 中没有任何密钥，也只会使用 ssh-agent。

10. 点击   测试连接   以运行测试连接。

11. 在   SSH 配置   对话框中，点击   OK   以确认新的 SSH 配置设置。

12. 在   数据源和驱动程序   对话框的   本地端口   字段中，指定要用于转发连接的本地端口号。 否则，IntelliJ IDEA 会动态选择端口。

13. 点击连接详细信息区域底部的   测试连接   链接，以启动与数据库的测试连接。

![测试连接链接](https://resources.jetbrains.com/help/img/idea/2026.3/db_test_connection_link.png)

14. 点击   OK   创建数据源。

![数据源的 SSH 设置](https://resources.jetbrains.com/help/img/idea/2026.3/db_ssh_configurations.png)

> **Tip:**
> 有关使用 SSH 密钥的更多信息，请参阅 [生成新的 SSH 密钥并将其添加到 ssh-agent](https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/) 教程。

#### 示例

有关使用 SSH 连接到数据库的示例，请参阅 [使用 SSH 连接到数据库](connect-to-a-database-with-ssh.html) 主题。

Procedure: 禁用 SSH 连接到数据库

1. 通过以下任一方式打开数据源属性：

* 在 数据库 工具窗口工具栏中，点击 ![数据源图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg) 数据源 。

* 请按 `Shift+Enter` (Windows), `⌘ I` (macOS), `⇧ ⏎` (IntelliJ IDEA Classic (macOS)), `⌘ I` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `⌘ I` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `⌘ I` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `⌘ I` (Eclipse (macOS)) .

![打开数据源和驱动程序对话框](https://resources.jetbrains.com/help/img/idea/2026.3/open_data_sources_and_drivers_dialog.png)

2. 选择要更改连接设置的数据源配置文件。

3. 点击   SSH/SSL   选项卡，并清除   使用 SSH 隧道   复选框。

4. 点击   应用  。

### 手动创建 SSH tunnel

Procedure: 使用 PuTTY 创建 SSH 隧道（Windows）

1. 下载并运行最新版本的 PuTTY SSH 和 Telnet 客户端（从 [https://www.putty.org/](https://www.putty.org/) 下载客户端）。

2. 在   PuTTY 配置  对话框中，导航到  `连接 | SSH | 身份验证` 。

3. 在   用于身份验证的私钥文件   字段中，指定私钥文件的路径，然后点击   打开  。

4. 在命令行窗口中，指定用于 SSH 隧道的用户名，然后按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))。 请勿关闭命令行窗口。

5. 在   数据库   工具窗口中，点击工具栏上的   数据源属性},{   图标 ![数据源属性图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg)。

6. 选择要更改连接设置的数据源配置文件。

7. 点击   SSH/SSL   选项卡并选中   使用 SSH 隧道   复选框。

8. 从   身份验证类型   列表中选择   OpenSSH 配置和身份验证代理  。

9. 在   代理主机  、   代理用户   和   端口   字段中，指定连接详细信息。

10. 要确保与数据源的连接成功，请点击   测试连接  。

![使用 PuTTY 创建 SSH 隧道（Windows）](https://resources.jetbrains.com/help/img/idea/2026.3/db_putty_key_config.png)

Procedure: 使用 Pageant 创建 SSH 隧道（Windows）

Pageant 是用于 PuTTY、PSCP、PSFTP 和 Plink 的 SSH 身份验证代理。 Pageant 会存储私钥，只要它在运行，就会向 PuTTY 或类似 IntelliJ IDEA 的其他工具提供已解锁的私钥。 您可以在 Windows 任务栏中找到 Pageant 图标。

1. 下载最新版本的 Pageant（从 [https://www.putty.org/](https://www.putty.org/) 下载客户端）。

2. 在 Windows 任务栏中，右键点击 Pageant 图标，并选择   添加密钥  。

3. 在   选择私钥文件   对话框中，导航到私钥文件（PPK 文件），然后点击   打开  。

4. （可选）输入私钥密码短语，然后按 `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (NetBeans), `Enter` (Eclipse), `⏎` (Eclipse (macOS))。

5. 在   数据库   工具窗口中，点击工具栏上的   数据源属性},{   图标 ![数据源属性图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg)。

6. 选择要更改连接设置的数据源配置文件。

7. 点击   SSH/SSL   选项卡并选中   使用 SSH 隧道   复选框。

8. 从   身份验证类型   列表中选择   OpenSSH 配置和身份验证代理  。

9. 在   代理主机  、   代理用户   和   端口   字段中，指定连接详细信息。

10. 要确保与数据源的连接成功，请点击   测试连接  。

![使用 Pageant 创建 SSH 隧道（Windows）](https://resources.jetbrains.com/help/img/idea/2026.3/db_task_area_pageant.png)

Procedure: 使用 ssh-agent 创建 SSH 隧道（macOS 和 Linux）

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

1. 确保 ssh-agent 正在运行。

```
ssh-agent
```

2. 将密钥添加到代理中（在以下示例中，密钥路径为  `~/.ssh/id_rsa` ）。

```
ssh-add ~/.ssh/id_rsa
```

3. （可选）在 macOS 上，可以在  `ssh-add`  命令中添加  `-K`  选项，以将密码短语存储在钥匙串中。 在 macOS Sierra 及更高版本上，需要在  `~/.ssh/`  中创建  `config`  文件，并包含以下文本：

```
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/id_rsa

```

如果  `.ssh`  目录中还有其他私钥，请为每个密钥添加一行  `IdentityFile` 。 例如，如果第二个密钥的名称为  `id_ed25519` ，请为第二个私钥另加一行  `IdentityFile ~/.ssh/id_ed25519` 。

4. 列出所有已添加的密钥。

```
ssh-add -L
```

5. 在   数据库   工具窗口中，点击工具栏上的   数据源属性},{   图标 ![数据源属性图标](https://resources.jetbrains.com/help/img/idea/2026.3/database-plugin.icons.expui.manageDataSources.svg)。

6. 选择要更改连接设置的数据源配置文件。

7. 点击   SSH/SSL   选项卡并选中   使用 SSH 隧道   复选框。

8. 从   身份验证类型   列表中选择   OpenSSH 配置和身份验证代理  。

9. 在   代理主机  、   代理用户   和   端口   字段中，指定连接详细信息。

10. 要确保与数据源的连接成功，请点击   测试连接  。

![使用 ssh-agent 创建 SSH 隧道（macOS 和 Linux）](https://resources.jetbrains.com/help/img/idea/2026.3/db_ssh_agent_linux_macos.png)

## See also

