是否可以重定向 ssh 流量(而不是转发),如何?

是否可以重定向 ssh 流量(而不是转发),如何?

在此输入图像描述

我知道可以通过创建隧道将 SSH 从服务器 A 转发到服务器 B。

我要求的是上面模式中的红色替代方案。这个场景可以实现吗:

  1. 通过 SSH 连接到服务器 A
  2. 服务器 A 告诉客户端转至服务器 B
  3. 服务器B通过SSH直接与客户端通信

所以基本上是一种代理,在将客户端-服务器引入彼此之后,他就退出通信。

我想使用防火墙重定向并不能提供太多的自定义功能。

我最终寻求的是一种根据地理位置通过 SSH 访问 git 镜像对客户端透明的方法。

高级场景场景

  1. 从服务器 A 拉取且距离服务器 B 更近的客户端将被重定向到 B
  2. 推送时,客户端保留在服务器 A 上

答案1

不幸的是,SSH 中没有打开标志来执行此操作。您必须为 GIT 编写一些自定义代码。 (即,如果服务器 A 的 ping 时间比服务器 B 短,则使用 A,反之亦然)

答案2

你可以想到这样的包装:

  • 服务器,或者只是主服务器保存 git 传输初始化脚本
  • 在客户端中,定义 Git 别名,通过在主服务器(或任何服务器)上执行该脚本来获取目标服务器

如果您只需要重定向pull,那么您需要一个别名。但你可能还想重定向fetch(如果不是更多命令,我对 Git 不太擅长)。

相关内容