[英]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.