使用 python 通过堡垒服务器双 SSH 隧道连接到 AWS 私有数据库

时间:2021-05-31 20:24:19

标签: python postgresql amazon-web-services sqlalchemy

我正在尝试访问连接到私有 linux 实例的私有 Postgres 数据库。当我通过终端访问它时,我必须首先通过 SSH 连接到堡垒实例,然后使用相同的 PEM 文件通过 SSH 连接到我可以访问数据库的私有 linux 实例。我希望使用 sqlalchemy 通过 python 访问这个数据库。我已阅读有关 SSH 端口转发的信息,但遇到了问题。我找到了这个例子,但我不清楚在哪里输入私有实例的地址,我尝试使用 remote_bind_address 中的地址,但抛出错误。

could not translate host name to address
with SSHTunnelForwarder(
        ('xxx-x-xx-xx-xxx.us-west-2.compute.amazonaws.com'), """bastian server"""
        ssh_username="buntu",
        ssh_pkey="fourmm.pem",
        remote_bind_address=('Address of private instance?', 22)
) as tunnel:
    print("****SSH Tunnel Established****")
    engine = create_engine(
        "postgresql://postgres:XXXXXXXxxxxxxx@xxxx-xx.cluster-xxxxxx.us-wesr-.rds.amazonaws.com:5432/postgres",
        echo=True, future=True)

0 个答案:

没有答案