

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 pgAdmin 中使用 SSH 隧道进行连接
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin"></a>

*Jeevan Shetty 和 Bhanu Ganesh Gudivada，Amazon Web Services*

## Summary
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-summary"></a>

出于安全考虑，最好将数据库放在私有子网中。通过亚马逊云网络服务 (AWS) 云上公有子网中的亚马逊弹性计算云 (Amazon EC2) 堡垒主机进行连接，即可对数据库进行查询。这需要在 Amazon 主机上安装开发人员 DBeaver或数据库管理员常用的软件，例如 pgadmin 或。 EC2 

在 Linux 服务器上运行 pgAdmin 并通过网络浏览器访问它，需要安装其他依赖项、权限设置和配置。

作为替代解决方案，开发人员或数据库管理员可以使用 pgAdmin 从其本地系统启用 SSH 隧道，从而连接到 PostgreSQL 数据库。在这种方法中，pgadmin 在连接到数据库之前使用公有子网中的 EC2 Amazon 主机作为中间主机。*架构*部分的图表显示了设置情况。

**注意**  
确保连接到 PostgreSQL 数据库的安全组允许通过端口 5432 从亚马逊主机进行连接。 EC2 

## 先决条件和限制
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-prereqs"></a>

**先决条件**
+ 现有 Amazon Web Services account 
+ 具有公有子网和私有子网的虚拟私有云（VPC）
+ 附加了安全组的 EC2 实例
+ 附加了安全组的 Amazon Aurora PostgreSQL 兼容版数据库
+ 用于设置隧道的 Secure Shell (SSH) 密钥对

**产品版本**
+ pgAdmin 版本 6.2\+
+ Amazon Aurora PostgreSQL 兼容版版本 12.7\+

## 架构
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-architecture"></a>

**目标技术堆栈**
+ Amazon EC2
+ 兼容 Amazon Aurora PostgreSQL

**目标架构**

下图显示了使用带有 SSH 隧道的 pgadmin 通过互联网网关连接到连接到数据库 EC2 的实例。

![带有 SSH 隧道的 pgadmin 通过互联网网关连接到连接到数据库 EC2 的实例。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/7d25d570-5685-4f1a-bef0-212e257cb589/images/4556d930-f9b3-4b65-be5d-d40dd9437d5a.png)


## 工具
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-tools"></a>

**Amazon Web Services**
+ [Amazon Aurora PostgreSQL 兼容版](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.AuroraPostgreSQL.html)是一个完全托管的、与 ACID 兼容的关系数据库引擎，可帮助您建立、运行和扩缩 PostgreSQL 部署。
+ [亚马逊弹性计算云 (Amazon EC2)](https://docs.aws.amazon.com/ec2/) 在 AWS 云中提供可扩展的计算容量。您可以根据需要启动任意数量的虚拟服务器，并快速纵向扩展或缩减这些服务器。

**其他服务**
+ [pgAdmin](https://www.pgadmin.org/) 是一种适用于 PostgreSQL 的开源管理工具。它提供了一个图形界面，可帮助您创建、维护和使用数据库对象。

## 操作说明
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-epics"></a>

### 创建连接
<a name="create-the-connection"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建一个服务器。 | 在 pgAdmin 中，选择**创建**，然后选择**服务器**。有关设置 pgAdmin 以注册服务器、配置连接以及使用服务器对话框通过 SSH 隧道进行连接的其他帮助，请参阅*相关资源*部分中的链接。 | 数据库管理员 | 
| 为服务器提供一个名称。 | 在**常规**选项卡上，输入名称。 | 数据库管理员 | 
| 输入数据库详细信息。 | 在**连接**选项卡上，输入以下各项的值：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/connect-by-using-an-ssh-tunnel-in-pgadmin.html) | 数据库管理员 | 
| 输入 Amazon EC2 服务器的详细信息。 | 在 **SSH 隧道**选项卡上，提供公有子网中的 Amazon EC2 实例的详细信息。[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/connect-by-using-an-ssh-tunnel-in-pgadmin.html) | 数据库管理员 | 
| 保存并连接。 | 选择**保存**以完成设置并使用 SSH 隧道连接到与 Aurora PostgreSQL 兼容的数据库。 | 数据库管理员 | 

## 相关的资源
<a name="connect-by-using-an-ssh-tunnel-in-pgadmin-resources"></a>
+ [服务器对话框](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html)
+ [连接到服务器](https://www.pgadmin.org/docs/pgadmin4/latest/connect_to_server.html)