Ssh
是否可以重定向 ssh 流量(不轉發),如何?
我知道可以通過創建隧道將 SSH 從伺服器 A 轉發到伺服器 B。
我要的是上面架構中的紅色替代方案。能否實現這種場景:
- SSH 到伺服器 A
- 伺服器 A 告訴客戶端轉到伺服器 B
- 伺服器 B 通過 SSH 直接與客戶端通信
所以基本上是一種代理,在將客戶端-伺服器相互介紹之後,他就退出了通信。
我想使用防火牆重定向並不能提供太多自定義。
我最終尋求的是一種通過 SSH 訪問 git 鏡像對客戶端透明的方法,具體取決於地理位置。
高級場景場景
- 客戶端從伺服器 A 拉取並更靠近伺服器 B 被重定向到 B
- 推送時,客戶端仍然在伺服器 A 上
不幸的是,在 SSH 中沒有打開標誌來執行此操作。您必須為 GIT 編寫一些自定義程式碼。(即,如果伺服器 A 的 ping 時間低於伺服器 B,則使用 A,反之亦然)
你可以想到這種包裝:
- 伺服器,或者只是主伺服器擁有一個 git transfer 初始化腳本
- 在客戶端中,定義將通過在主伺服器(或任何伺服器)上執行該腳本來獲取目標伺服器的 Git 別名
如果您只需要重定向
pull
,那麼您需要一個別名。但可能您還想重定向fetch
(如果不是更多命令,我對 Git 不太擅長)。