Ssh

是否可以重定向 ssh 流量(不轉發),如何?

  • June 21, 2018

在此處輸入圖像描述

我知道可以通過創建隧道將 SSH 從伺服器 A 轉發到伺服器 B。

我要的是上面架構中的紅色替代方案。能否實現這種場景:

  1. SSH 到伺服器 A
  2. 伺服器 A 告訴客戶端轉到伺服器 B
  3. 伺服器 B 通過 SSH 直接與客戶端通信

所以基本上是一種代理,在將客戶端-伺服器相互介紹之後,他就退出了通信。

我想使用防火牆重定向並不能提供太多自定義。

我最終尋求的是一種通過 SSH 訪問 git 鏡像對客戶端透明的方法,具體取決於地理位置。

高級場景場景

  1. 客戶端從伺服器 A 拉取並更靠近伺服器 B 被重定向到 B
  2. 推送時,客戶端仍然在伺服器 A 上

不幸的是,在 SSH 中沒有打開標誌來執行此操作。您必須為 GIT 編寫一些自定義程式碼。(即,如果伺服器 A 的 ping 時間低於伺服器 B,則使用 A,反之亦然)

你可以想到這種包裝:

  • 伺服器,或者只是主伺服器擁有一個 git transfer 初始化腳本
  • 在客戶端中,定義將通過在主伺服器(或任何伺服器)上執行該腳本來獲取目標伺服器的 Git 別名

如果您只需要重定向pull,那麼您需要一個別名。但可能您還想重定向fetch(如果不是更多命令,我對 Git 不太擅長)。

引用自:https://unix.stackexchange.com/questions/451056