簡體   English   中英

帶有雙 SSH 的 Git

[英]Git with double SSH

我有:本地、server1、server2。

我在 server2 上有 Git 存儲庫。 但我無法連接它。 我可以使用 SSH 連接到 server1,然后使用 SSH 連接到 server2。

如何使用雙 SSH 將提交推送到 server2? 是否可以?

看看 ssh 的ProxyCommand 通過在 ssh 配置文件中添加一個部分,例如

Host server2 ProxyCommand ssh -q server1 nc -q0 %h 22

您應該能夠將 git 與 repo 和 server2 一起使用。 注意:這需要nc在 server1 上可用。

該解決方案使通過 ssh 訪問 server2(例如使用 git)變得透明,就好像它可以直接訪問一樣。

一種解決方案是在網關主機(server1)上准備SSH 隧道,並在本地端使用 Git(您可能需要使用.ssh/options來配置端口)。

另一個是使用ext:: remote helper和雙 SSH 的純 Git 解決方案(您最好至少在網關上設置基於無密碼公鑰的身份驗證,否則您將不得不提供兩次密碼)。 例如:

local ~$ git clone \
   "ext::ssh -t user@server1 ssh server2 %S 'repo'" repo
Cloning into 'repo'...
Checking connectivity... done.

這里%S將被 Git 擴展為相應服務的全名, git-upload-pack用於獲取, git-receive-pack用於推送。 如果登錄到內部主機使用交互式身份驗證(例如密碼),則需要-t選項。

請注意,您需要將要下載到的名稱或目錄作為git clone命令(此處為repo )的最后一個參數提供給此處生成的存儲庫; 否則 Git 會使用命令 ( ssh ... ) 作為名稱。

然后,您將能夠通過名稱“origin”獲取並推送到存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM