无法在Ubuntu

时间:2016-05-06 18:06:22

标签: postgresql ssh ubuntu-14.04 pgadmin ssh-tunnel

我在DigitalCloud上有一个Ubuntu 14.04和PostgreSQL 9.3的Droplet。在本地机器上我有相同的配置。

我的ssh连接正在运行,所以没有问题。它必须位于Postgres连接或环境设置中的某个位置。

所以我在服务器上已经完成的是:

  • 更改了 / etc / ssh / sshd_config中的侦听端口

    Port 4321

  • /etc/postgresql/9.3/main/pg_hba.conf 中启用了远程连接

    主持所有0.0.0.0/0 md5

  • /etc/postgresql/9.3/main/postgresql.conf中添加了侦听地址

    listen_addresses ='*'

这是我的本地连接设置:

Here is my Properties tab screen

Here is my SSH Tunnel tab screen

我使用的是同一个(也是唯一的)id_rsa.pub文件,我之前用它来建立我的ssh连接。这是有效的。这是我尝试连接时遇到的错误:

  

SSH错误:识别文件的身份验证失败,错误代码为-16   [无法从私钥文件中提取公钥:密码错误   或无效/无法识别的私钥文件格式]

我的密码设置为空。

如果我尝试在没有SSH隧道的情况下进行连接,则会出现另一个错误:

  

连接到服务器时出错:SSL错误:预期的未知协议   来自服务器的身份验证请求,但收到了S

我是一个完全新手,我可能错过了一些重要的东西。所以请告诉我你是否希望我提供有关此事的任何其他信息。

编辑1:

如果我使用正确的id_rsa文件(没有pub),那么我会得到同样的错误:

  

连接到服务器时出错:SSL错误:预期的未知协议   来自服务器的身份验证请求,但收到了S

1 个答案:

答案 0 :(得分:1)

  

我只使用相同(且唯一)的id_rsa.pub文件

第一个问题是这是错误的文件。看看你的文件是否在名为“id_rsa”的同一个地方没有“.pub”扩展名。这是您应该用作身份文件的文件。

RSA ssh密钥有两个文件:“id_rsa”包含私钥,而“id_rsa.pub”包含公钥。 id_rsa.pub安装在您要连接的服务器上,而id_rsa由连接到服务器的客户端使用。

(当然,密钥文件可以命名为“id_rsa”以外的东西。关键是私钥在 foobar 中,而公钥在 foobar.pub < / em>的。)

如果你没有id_rsa文件,那么你应该生成一个新密钥并保留这两个文件。

第二个问题是属性选项卡上的端口错误。属性选项卡上的端口号是PG服务器正在运行的端口。您应该将其设置为5432或服务器实际侦听的任何端口。看来你也应该在属性选项卡上将“host”设置为“localhost”,但我不知道这是否是必需的。

  

连接到服务器时出错:SSL错误:来自服务器的未知协议预期身份验证请求,但收到S

现在发生的事情是您的隧道PG连接将转到远程主机上的端口4321,即SSH服务器。碰巧SSH服务器发送到新客户端的第一件事是版本字符串,看起来像“SSH-2.0-OpenSSH_6.9”我不知道PG协议,但显然你的客户端读取“S” SSH字符串,并立即知道它没有连接到PG服务器。