在 R 中使用 ssh 隧道连接到数据库 PostSQL

Connect to database PostSQL using ssh tunnel in R

Objective 是使用 SSH 隧道将 R 连接到 PostgreSQL

刚刚尝试使用库 RPostgreSQLDBI,但没有成功。我找不到传递 SSH 隧道参数(代理主机、代理用户和私钥)的方法。

我想知道是否有办法以某种方式在数据库查询字符串中指定这些 SSH 参数?或许还有别的出路?

这是我使用过的代码示例:

首先,设置一个 ssh 隧道 - 这将用于 AWS EC2 实例:

ssh -i 'YOURKEY.pem' -N -L 1234:YOURDATABASEHOST:5432 YOURUSER@YOURAWSINSTANCE

然后在 R 中:

library(RPostgreSQL)

conn <- dbConnect(RPostgreSQL::PostgreSQL(), dbname = 'MYREMOTEDBNAME', host = '127.0.0.1', port = 1234, password = 'MYREMOTEPASSWORD', user = 'MYREMOTEUSER')

如您所见,关键是在某种远程实例和远程数据库之间设置隧道。然后您使用这个本地托管的隧道(因此,127.0.0.1 作为您的主机)和指定的端口(在本例中为 1234)。