我有一台AWS服务器,我可以使用带有.pem密钥的SSH访问。
使用valentina,我试图以这种方式访问postgres
我一直收到失败的身份讯息。
我将同样的.pem文件和ssh用于服务器。 使用相同的postgres用户和密码来访问使用psql客户端。
有效。
我还需要做些什么来使Valentina Studio也能正常工作?
更新
我已将pg_hba.conf
更改为以下内容:
host all all * ident
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
我可以在postgres服务器上运行psql -U postgres
。
我无法在postgres服务器上运行psql -h localhost -U postgres
。
更新2:
# "local" is for Unix domain socket connections only
local all postgres peer
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
这解决了问题
答案 0 :(得分:1)
我一直收到失败的身份讯息。
这表明你实际上可以ssh。
猜测,您的手动测试与以下几行有关:
psql mydb
通常使用 unix socket ,在local
中显示为pg_hba.conf
个条目。
相比之下,您的应用程序将通过TCP / IP连接,可能是通过ssh转发到localhost的套接字。这会对host
中的pg_hba.conf
条目进行身份验证。
所以我认为您在直接登录时会测试不同的东西。
手动尝试:
psql -h localhost mydb
即。强制使用TCP / IP连接。您将收到同样的错误,因为您在pg_hba.conf
中设置了ident
作为来自localhost的host
连接的auth方法,并且可能在那里&# 39; s没有identd
正在运行或其他机制允许正确的ident
。您可能想要使用md5
身份验证。