当前位置: 首页 > 知识库问答 >
问题:

PostgresqlJavajdbc通过SSL隧道连接到使用. pem文件在Virtualbox中运行的数据库

易研
2023-03-14

嗨,我正在尝试连接到在Virtualbox Centos中运行的本地Postgres Db,它通过SSL隧道连接。下面是我如何通过DBeaver连接的示例

  1. DBeaver我正在使用SSL隧道选项卡和

我的没有ssl隧道的Java代码是这样的

DriverManager.get连接("jdbc:postgresql://localhost:5432/dbName?user=postgresuser

这是失败说pg_hba.conf未找到等,或者如果我在连接字符串中给出ssl=true,说它不受支持...如何使用ssl隧道连接到本地数据库?[我在pg_hba.conf文件中的假设仅在Virtualbox Host Vm上可用。]


共有1个答案

邢昊焜
2023-03-14

您可以尝试使用jsch,它是Java中SSH的实现。

下面是一个完整的例子,说明如何做到这一点https://cryptofreek.org/2012/06/06/howto-jdbc-over-an-ssh-tunnel/

请注意,在这种情况下,您的所有流量都将流向代理,因此您需要在读取/写入数据库后关闭会话。

 类似资料:
  • 修复(编辑代码以反映我所做的更改) 我正在尝试使用Java通过SSH隧道连接到Mongo数据库。 我正在使用Mongo驱动程序3.0.2和jcraft(JSch)创建一个SSH隧道。我的想法是: 通过SSH连接到托管MongoDB安装的机器 设置从本地端口到远程MongoDB端口的端口转发 远程连接到MongoDB 我的代码如下所示: 这段代码在运行时, 不 EDIT:有效。 连接到SSH服务器工

  • 目标是使用SSH隧道将R连接到PostgreSQL。 刚刚用库RPostgreSQL和DBI进行了不成功的尝试。我没有找到传递SSH隧道参数(代理主机、代理用户和私钥)的方法。 我想知道是否有办法在db查询字符串中指定这些SSH参数?也许还有别的出路?

  • 问题内容: 我已经在两个服务器 A 和 B 之间建立了SSH隧道。 B 有MySQL服务器,这可行: 虽然这不是: 尽管my.cnf具有以下几行: 现在关于隧道。它连接以下内容: 但是当(在 A上 ,端口转发)时,我会 我懂了 当我这样做 我懂了 可能是什么原因?我究竟做错了什么? 问题答案: 这里有三个问题。 1-暂时忘记SSH隧道 您不能将MySQL绑定到多个特定IP。第一个子句被第二个子句覆

  • 我有两台机器:machine foo()运行redis服务器,而machine bar()运行通过Jedis连接到foo的java应用程序。当给jedis提供地址时,一切都很好。 但是我不信任foo和bar之间的路由器,redis也不支持SSL。因此,我设置了一个从bar到foo:的ssh隧道 现在,从bar中,我可以直接在或通过隧道在成功地telnet到foo上的redis。对于jedis,如果

  • 我想通过ssh隧道与具有localhost访问权限的用户连接到远程MySQL。 我用这个做隧道: 和这个连接到主机: 我得到的错误是: 问题是用户“user”@“remote-host”(或“user”@“%”)不存在,只有“user”@“localhost”存在。 有没有办法强迫远程主机在不进行服务器端修改的情况下认为我来自本地主机?这是我通过ssh隧道进行连接的唯一原因。 注: 如果要连接此命