【问题标题】:Connecting to database through ssh tunnel通过 ssh 隧道连接到数据库
【发布时间】:2014-07-20 21:46:28
【问题描述】:

我们的生产数据库只能从生产应用服务器访问。我能够登录到生产应用程序服务器和 psql 到数据库,但我想设置一个 ssh 隧道以允许我从我的工作箱访问生产数据库。

理想情况下,我可以从我的工作箱运行一个命令,在生产应用服务器上设置隧道/代理

这是我想出的,但它不起作用。

user@workbox $ ssh -fNT -L 55555:db.projectX.company.com:5432 app.projectX.company.com
user@workbox $ psql -h app.projectX.company.com -p 55555

psql: could not connect to server: No route to host
Is the server running on host "app.projectX.company.com" (10.1.1.55) and accepting
TCP/IP connections on port 55555?

报告的 IP 地址不正确。

【问题讨论】:

    标签: postgresql shell ssh proxy ssh-tunnel


    【解决方案1】:

    当连接到隧道端点时,主机名是您的本地主机,因为这是转发端口被暴露的地方。

    ssh -fNT -L 55555:db.projectX.company.com:5432 app.projectX.company.com
    psql -h localhost -p 55555
    

    顺便说一句,PgAdmin-III 提供 ssh 隧道自动化。另一方面,它是一个没有psql 方便的\commands 的大型GUI 应用程序。

    编写一个sshpsql bash 脚本来启动 ssh 隧道、存储 ssh 进程的 pid、启动 psql、让你做你想做的事情并在退出时终止 ssh 隧道是非常简单的。您还需要TRAP "kill $sshpid" EXIT,以便在不干净的出口处终止隧道。

    【讨论】:

    • 谢谢你!我在 PgAdmin 中使用过隧道自动化功能,但这需要启动另一个应用程序并让我的终端散发出令人欣慰的光芒。
    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 2014-09-17
    • 2021-12-02
    • 1970-01-01
    • 2016-04-30
    • 2015-09-18
    • 2011-02-17
    • 2017-04-25
    相关资源
    最近更新 更多