我正在试验一个位于私有子网中的AWS RDS postgres实例。
为了访问我的其他私有EC2实例,我一直在使用SSH堡垒。
这一切都很好,但后来我发现这个想法实际上已经可以帮助我访问我的私人RDS实例。
太棒了,成功了——该死的,我喜欢IDEA。
但问题是。。。它是如何工作的?
这个想法只是在幕后为我做一些疯狂的SSH隧道吗(在这种情况下,我印象更深刻)?
或者这是我可以在自己的代码中利用的Postgres JDBC驱动程序的一个功能?也就是说,有什么方法可以配置Postgres JDBC来进行SSH隧道到我的RDS实例吗?
我真的很喜欢这样的方式,避免了以前在操作系统级别设置特定的隧道配置,就像这样。
所以问题是:我如何才能在我的项目中只使用代码来做与IDEA相同的事情?
接受了jDevelopment的回答。
下面是我用来测试的groovy代码片段,供其他可能想这样做的人使用:
JSch jsch = new JSch()
jsch.addIdentity("~/mykeys/bastion.pem")
jsch.setConfig("StrictHostKeyChecking", "no")
Session session=jsch.getSession("ec2-user", bastionServer, 22)
session.connect()
int localPort = 65432
session.setPortForwardingL(localPort, dbHostServer, dbHostPort)
testDbConnection(
"localhost", Integer.toString(localPort), dbName, dbUser, dbPassword)
session.disconnect()
是的,IntelliJ为您SSH隧道。
在代码中实现这一点的最简单方法是查看JSch及其端口转发示例
我正在使用IntelliJ社区版和JPA Buddy开发一个Java项目(基于Spring Boot 2.6.x)。我想使用JPA Buddy进行实体实用程序和Liquibase集成。 生产数据库(MySQL 5.7)只能通过ssh隧道访问。 有没有办法使用ssh隧道配置数据库连接?如何从生产数据库生成变更日志? 谢谢米奇
在IDEA中,我可以键入sout来表示系统。出来println() 我想知道如何制作自己的代码缩写。例如,alias
修复(编辑代码以反映我所做的更改) 我正在尝试使用Java通过SSH隧道连接到Mongo数据库。 我正在使用Mongo驱动程序3.0.2和jcraft(JSch)创建一个SSH隧道。我的想法是: 通过SSH连接到托管MongoDB安装的机器 设置从本地端口到远程MongoDB端口的端口转发 远程连接到MongoDB 我的代码如下所示: 这段代码在运行时, 不 EDIT:有效。 连接到SSH服务器工
目标是使用SSH隧道将R连接到PostgreSQL。 刚刚用库RPostgreSQL和DBI进行了不成功的尝试。我没有找到传递SSH隧道参数(代理主机、代理用户和私钥)的方法。 我想知道是否有办法在db查询字符串中指定这些SSH参数?也许还有别的出路?
我正在开发一个Gradle插件。有时我想看看Gradle自己类的源代码或Javadocs。我想从IntelliJ IDEA中完成,而不必打开单独的应用程序。也就是说,在Gradle方法或类上点击Ctrl或Ctrl B,让IntelliJ打开Gradle本身的源代码。 我尝试了一切,从在IntelliJ IDEA中附加Gradle源: 正在添加
问题内容: 我一直在使用Tensorflow库来完成这些教程。现在我想使用自己的数据,但是我失败了。这也许是一个菜鸟问题,但我无法弄清楚。 我正在使用此示例:[https]( https://github.com/aymericdamien/TensorFlow- Examples/blob/master/examples/3%20-%20Neural%20Networks/convolution