![](/img/trans.png)
[英]Subversion over ssh - access to the remote repository on Linux from Windows host
[英]How do I access a remote (local gitlab instance on remote server) repository over SSH?
設置如下:
我如何將該存儲庫克隆到我的本地機器上,並根據該設置遠程推/拉數據?
當我離遠程私有服務器不遠很遠時,我是這樣在本地訪問它的:
git clone git@XXX.XXX.XX.X:REPODIR/repo_name.git
在這種情況下,XXX.XXX.XX.X 是遠程網絡上本地 git-lab 實例的 IP。
反正有沒有隧道進入遠程網絡並通過代理訪問gitlab實例(原諒我可能使用錯誤的詞)。
謝謝你。
好的,主要感謝@o11c,盡管這是我的發現,使我能夠遠程克隆我的 repo。
免責聲明:ProxyJump(-J 請參閱 ssh 聯機幫助頁)是它的簡寫、更現代的版本,但我無法使其正常工作——如果有人想更新他們的 ProxyJump 實現,那將是有用的!
使用您的主要身份(這可以在 ~/.ssh 中,或者您可以使用 -i 手動引用它)通過 SSH 到您的遠程帳戶到主服務器,並使用您的 gitlab 或其他應用程序實例的端口
ssh -ND 3131 nkunes@XXX.XXX.1.146 -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"
其中ssh-proxy.sh
定義如下:(同樣,為您的應用程序交換端口,如果需要現代實現,可能使用 ProxyJump)
ssh -o ProxyCommand='/usr/bin/nc -X 4 -x 127.0.0.1:3131 %h %p' "$@"
然后,您可以使用以下命令正常克隆:
git clone git@XXX.XXX.XX.X:REPODIR/repo_name.git
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.