Django 使用 ssh 和 pem 文件连接到远程数据库

Django Connect to remote database using ssh and pem file

我可以使用 pem 文件通过 SSH 访问数据库到一些 aws 实例。

如何将 Django 连接到该 Postgres 数据库。

Django 数据库连接选项中有 sslkey 等。但是找不到 ssh 隧道选项。

任何指针请

更新:- 由于公司政策无法更改白名单等设置。在 aws 云中没有问题,因为所有内容都已列入白名单。我想将本地 Django 设置连接到 staging / uat 数据库进行测试

有几个选项

您可以创建 ssh 隧道以将远程服务器映射到本地端口

ssh -L <local port>:127.0.0.1:<remote port> <username>@<remote host> -N

当此进程处于活动状态时,本地端口将连接到远程主机上的远程端口。您可以 supervisord 加上一个脚本来确保 ssh 连接在您的应用程序之前启动。

另一种选择是django-db-tunnel

是的,我对 https://www.pythonanywhere.com postgres 数据库有同样的问题。但它正在使用 SSH 隧道

ssh -L <local port>:127.0.0.1:<remote port> <username>@<remote host> 

使用 SSH 隧道连接 pythonanywhere.com postgres 数据库的示例

ssh -4 -L 5432:xxxxxx.postgres.pythonanywhere-services.com:12499 <db_name>@ssh.pythonanywhere.com

SSH 连接后,您可以将 django postgres 端口指向本地端口