簡體   English   中英

如何通過 SSH 訪問遠程(遠程服務器上的本地 gitlab 實例)存儲庫?

[英]How do I access a remote (local gitlab instance on remote server) repository over SSH?

設置如下:

  • 遙遠的私人服務器
  • 遠程私有服務器在端口 XXXX 上有私有 gitlab 實例
  • 遠程私有服務器配置為允許通過 SSH 密鑰登錄
  • 遠程私有服務器 XXXX 端口上的 gitlab 實例需要使用不同的 SSH 密鑰進行 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.

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