我在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
答案 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服务器。