首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以在一个连接中实现ssh隧道和反向ssh隧道吗?

我可以在一个连接中实现ssh隧道和反向ssh隧道吗?
EN

Server Fault用户
提问于 2013-04-26 05:27:50
回答 1查看 2.1K关注 0票数 1

我目前正在使用.ssh/config存储我办公室的网络:

代码语言:javascript
复制
Host office
    Hostname office.company.com
    Port 22222
    User hobbes3

要连接到远程office Postgres数据库,我需要SSH到office服务器,然后跳转到office数据库,所以我使用ssh隧道,如下所示

代码语言:javascript
复制
ssh -L 5433:db:5432 office

(我使用端口5433,因为我已经在计算机上安装了本地Postgres数据库)

( db是office网络上数据库服务器的解析主机名)

我还使用Xdebug进行PHP调试,因此我的本地机器正在监听端口9000。因此,我使用这样的反向ssh隧道

代码语言:javascript
复制
ssh -R 9000:localhost:9000 office

但这意味着我需要打开两个终端,我试图将这两个命令合并成这样的一个

代码语言:javascript
复制
ssh -L 5433:db:5432 -R 9000:localhost:9000 office

(我知道我可以使用xdebug.remote_host直接连接本地机器的公共IP,但我想使用隧道技术,这样我就可以在办公室或家里工作,在两个不同的IP下工作)

但只有一半起作用( -L隧道起作用了,但-R没有起作用)。

我可以在一个命令中同时使用常规的和反向的SSH隧道吗?如果是的话,我做错了什么?提前感谢!

EN

回答 1

Server Fault用户

回答已采纳

发布于 2013-04-26 22:50:19

在同一个隧道中使用直端口和反向端口转发是完全合法的。您甚至可以将每个选项相乘以设置多个端口转发。

我确信您的问题有一点不同:您希望转发端口9000,这是用于X连接的,而且您的方法很可能与另外两种相关的安全机制冲突:X服务器自己的授权和SSH自己的X转发控制。如果您只打算通过SSH客户端运行X应用程序,那么您就不需要手动引导X端口。相反,将SSH服务器和客户端配置为通过此配置建立X转发:

1)在SSH服务器上,在/etc/ssh/sshd_config中设置行"X11Forwarding是“(不要忘记重新启动sshd)。

2)在客户端,对ssh使用显式-X选项,或者在连接主机的.ssh/config中添加行"ForwardX11“。命令应该是这样的:

ssh -X -L 5433:db:5432 office

它必须通过所有X控制机制之间的协议设置X转发。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/502758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档