Vagrant postgres ssh隧道

时间:2016-04-13 07:49:15

标签: postgresql ssh vagrant

我有Postgres的流浪汉机器。我需要使用一些外部工具(例如pgmodeler,keetle)连接这个数据库。 所以我开始使用隧道:

ssh -L 5433:127.0.0.1:5432 vagrant@192.168.56.140 -i puphpet/files/dot/ssh/id_rsa

然后我尝试使用命令登录:

psql -h 127.0.0.1 -p 5433 -U postgres postgres

我收到错误:

FATAL: password authentication failed for user "postgres"

我有点困惑,因为它曾经工作,现在它没有。我试图设置用户密码,但它没有用。我应该在哪里寻找问题?

1 个答案:

答案 0 :(得分:1)

您需要调整postgres服务器的pg_hba.conf文件,以告知postgres允许哪些用户的连接。在类似debian的发行版中,您可以在/etc/postgresql/9.1/main/pg_hba.conf中找到此文件。

在使用vagrant进行开发时,我通常使用pg_hba.conf中的以下条目,允许所有用户在没有密码的情况下从任何地方连接

# IPv4 connections from everywhere:
host    all             all             0.0.0.0/0               trust

永远不要在生产服务器上使用此行

在我的Vagrantfile中有以下行转发端口

Vagrant.configure(2) do |config|
    # more stuff
    config.vm.network "forwarded_port", guest: 5432, host: 5433, host_ip: "127.0.0.1"
end

不要忘记将host_ip设置为localhost,否则postgres会绑定到本地计算机的所有网络接口。