加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL通过SSH隧道

发布时间:2020-12-13 16:41:22 所属栏目:百科 来源:网络整理
导读:我想使用RazorSQL连接到在远程服务器上运行的数据库。我使用以下命令在本地主机上创建一个SSH隧道: ssh -L 1111:remote.server.com:5432 myuser@remote.server.com 我通过RazorSQL的GUI配置我的连接,将localhost指定为主机,将1111指定为端口。当我点击“
我想使用RazorSQL连接到在远程服务器上运行的数据库。我使用以下命令在本地主机上创建一个SSH隧道:
ssh -L 1111:remote.server.com:5432 myuser@remote.server.com

我通过RazorSQL的GUI配置我的连接,将localhost指定为主机,将1111指定为端口。当我点击“连接”时,会出现以下错误信息:

ERROR: An error occurred while trying to make a connection to
the database: 

JDBC URL: jdbc:postgresql://localhost:1111/myuser

FATAL:
no pg_hba.conf entry for host "aaa.bbb.ccc.ddd",user "myuser",database "mydatabase",SSL off

其中aaa.bbb.ccc.ddd是远程服务器的IP地址。

此外,我不允许更改我的pg_hba.conf文件的内容。这就是现在的样子:

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local   all         all                               @authmethod@
# IPv4 local connections:
host    all         all         127.0.0.1/32          @authmethod@
# IPv6 local connections:
host    all         all         ::1/128               @authmethod@

可以使用我当前的安装程序通过SSH隧道连接到数据库服务器,而不修改服务器的配置?

您的pg_hba.conf似乎允许从本地主机连接。使您的SSH隧道连接从本地主机出现的最简单的方法是使其成为本地主机。

以下SSH命令以用户“user”的形式连接到remote.example.com,并使您的ssh客户端侦听localhost,端口1111 / tcp。与该端口建立的任何连接都将通过ssh隧道转发,而在ssh服务器端将连接到本地主机端口5432 / tcp。由于我们连接到本地主机,所以连接将显示为localhost,并且应该与现有的pg_hba.conf行匹配。

ssh -L 1111:localhost:5432 user@remote.example.com

如果这是一个长期运行的隧道,我建议使用autossh

要使用运行ssh客户端的主机上的psql客户端进行连接,请使用以下命令:

psql -h localhost -p 1111 -U your-db-username database-name

然后应该提示您输入数据库用户的密码。

或者,您可以在运行psql的客户端的主目录中将以下行添加到名为.pgpass的文件中:

localhost:1111:database-name:your-db-user:your-db-password

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读