使用Navicat通过SSHlogin到Postgresql – 什么是正确的设置?

我试图通过使用Navicat的SSHlogin到我的EC2服务器上的PostgreSQL

我收到以下错误信息:

“80070007:SSH隧道:连接时发生套接字错误。WSAGetLastError return 10061($ 274D)”

在服务器上,“angular色”postgres已经存在,并且已经有一个名为postgres的数据库。 我已经为postgres分配了一个密码(通过Putty使用ALTER NAME命令)。

我在Navicat中使用的SSH设置是:端口:5432用户名:[pipe理员用户名]authentication方式:公钥

连接设置为:主机名:localhost端口:3306初始数据库:postgres用户名:postgres密码:[密码]

当我连接到同一台机器上的MySQL服务器,设置是完全一样的,除了:

SSH到端口22用户名(用于连接):root(具有相应的密码)

我已经尝试了SSH到端口22,在这种情况下,错误消息是:

“无法连接到服务器:连接被拒绝(0x0000274D / 10061)在主机”localhost“上运行服务器并在端口60122上接受TCP / IP连接?接收到对SSL协商无效的响应:4”

任何想法,我需要改变什么设置才能使这个工作?

你的配置似乎是非常错误的。

SSH端口应该不是5432,而是22(默认的ssh)。

postgresql的端口应该不是3306(这实际上是MySQL),但是5432(postgres默认)

要验证您的设置,请手动尝试ssh到您的EC2实例。 在你ssh之后,检查你是否可以执行“telnet localhost 5432”。 如果你立即看到一个错误,这将意味着postgres服务器没有运行。 如果你什么都看不到 – 这是好兆头,意味着Postgres正在运行。 你可以通过Ctrl-],q,Enter退出。

请注意,EC2实例可能要求您使用ssh公钥认证(不是密码)。 在这种情况下,你将不得不在Navicat中找到选项来提供这样的密钥。