我们的生产数据库只能从生产应用程序服务器访问。我能够登录到生产应用程序服务器和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地址不正确。
答案 0 :(得分:3)
连接到隧道端点时,主机名是您的本地主机,因为转发端口所在的位置。
ssh -fNT -L 55555:db.projectX.company.com:5432 app.projectX.company.com
psql -h localhost -p 55555
BTW,PgAdmin-III提供ssh隧道自动化。另一方面,它是一个没有psql
方便\commands
的大型GUI应用程序。
编写一个sshpsql
bash脚本来激活ssh隧道,存储ssh进程的pid,启动psql,让你做你想做的事情,并在退出时杀掉它,这是非常微不足道的ssh隧道。你也想TRAP "kill $sshpid" EXIT
所以你在不洁净的出口处杀死隧道。