設定如下:
- 遙遠的私人服務器
- 遠程私有服務器在埠 XXXX 上有私有 gitlab 實體
- 遠程私有服務器配置為允許通過 SSH 密鑰登錄
- 遠程私有服務器 XXXX 埠上的 gitlab 實體需要使用不同的 SSH 密鑰進行 SSH 密鑰認證
我如何將該存盤庫克隆到我的本地機器上,并根據該設定遠程推/拉資料?
當我離遠程私有服務器不遠很遠時,我是這樣在本地訪問它的:
git clone [email protected]:REPODIR/repo_name.git
在這種情況下,XXX.XXX.XX.X 是遠程網路上本地 git-lab 實體的 IP。
無論如何,是否可以通過隧道進入遠程網路并通過代理訪問 gitlab 實體(請原諒我可能使用錯誤的詞)。
謝謝你。
uj5u.com熱心網友回復:
好的,主要感謝@o11c,盡管這是我的發現,使我能夠遠程克隆我的 repo。
免責宣告:ProxyJump(-J 請參閱 ssh 聯機幫助頁)是它的簡寫、更現代的版本,但我無法使其正常作業——如果有人想更新他們的 ProxyJump 實作,那將是有用的!
使用您的主要身份(這可以在 ~/.ssh 中,或者您可以使用 -i 手動參考它)通過 SSH 到您的遠程帳戶到主服務器,并使用您的 gitlab 或其他應用程式實體的埠
ssh -ND 3131 [email protected] -i ../../keys/XXX-ssh &
然后我在我打算運行 git 命令的 shell 中獲取這個 bash 腳本(注意 ProxyCommand 的用法而不是 ProxyJump,這是這樣做的舊方法,但它對我來說效果很好。還要注意 127.0.0.1:PORT 應該被交換與您的應用程式的埠)
alias ssh="ssh -o ProxyCommand='/usr/bin/nc -X 4 -x 127.0.0.1:3131 %h %p'"
export GIT_SSH=~/Desktop/XXX-eng/ssh-access/ssh-proxy.sh
export PRE_SSH_ALIAS_PROMPT="$PS1"
export PS1="<< SSH ALIAS >>$PS1"
Wheressh-proxy.sh定義如下:(同樣,為您的應用程式交換埠,如果需要現代實作,可能使用 ProxyJump)
ssh -o ProxyCommand='/usr/bin/nc -X 4 -x 127.0.0.1:3131 %h %p' "$@"
然后,您可以使用以下命令正常克隆:
git clone [email protected]:REPODIR/repo_name.git
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/336985.html
