虽然我目前有一种解决方法,但我觉得必须有更好的方法来实现这一点,例如Python中的SSHTunnelForwarder。 (在此处找到)https://sshtunnel.readthedocs.io/en/latest/
我目前的解决方法:
1)写一个/.ssh/config
文件,指定本地端口转发选项。
2)在终端窗口中,执行ssh -N location_of_db
3)在R中,运行以下命令:
library(RPostgres)
drv <- RPostgres::Postgres()
dbName <- "my_database"
host <- "127.0.0.1"
port <- '5439'
user <- "username"
db <- dbConnect(drv, dbname=dbName, host=host, port=port, user=user,
password=readLines("/Users/me/keys/db_password.txt"))
是否有R方式可以做到这一点?
注意:代替1)和2)您可以在-L
命令(现在在注释中)中使用ssh
选项连接并设置本地端口转发,但这需要您找到您的ssh-agent
数据库,并提供其他安全信息,由sys admin设置。