如何通过 SSH 访问远程(远程服务器上的本地 gitlab 实例)存储库?
How do I access a remote (local gitlab instance on remote server) repository over SSH?
设置如下:
- 远方的远程私服
- 远程专用服务器在端口 XXXX
上有私有 gitlab 实例
- 远程专用服务器配置为允许通过 SSH 密钥进行 SSH 登录
- git远程私有服务器 XXXX 端口上的实验室实例需要使用不同的 SSH 密钥进行 SSH 密钥身份验证
如何将该存储库克隆到我的本地计算机上,并根据该设置远程 push/pull 数据?
这是我在离远程私服不远很远的时候本地访问的方式:
git clone git@XXX.XXX.XX.X:REPODIR/repo_name.git
在这种情况下,XXX.XXX.XX.X 是本地 git-lab 实例在远程网络上的 IP。
是否有隧道进入远程网络并通过代理访问 gitlab 实例(请原谅我可能用错了这个词)。
谢谢。
好的,这主要要感谢@o11c,尽管这是我的发现,使我能够远程克隆我的存储库。
免责声明:ProxyJump(-J 请参阅 ssh 联机帮助页)是 shorthand 更现代的版本,但我无法让它工作——如果有人想更新他们的 ProxyJump 实现会有用的!
使用您的主要身份(这可以在 ~/.ssh 中,或者您可以手动引用它 -一)
ssh -ND 3131 nkunes@XXX.XXX.1.146 -i ../../keys/XXX-ssh &
然后我在 shell 中获取这个 bash 脚本我打算 运行 git 命令(注意 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
设置如下:
- 远方的远程私服
- 远程专用服务器在端口 XXXX 上有私有 gitlab 实例
- 远程专用服务器配置为允许通过 SSH 密钥进行 SSH 登录
- git远程私有服务器 XXXX 端口上的实验室实例需要使用不同的 SSH 密钥进行 SSH 密钥身份验证
如何将该存储库克隆到我的本地计算机上,并根据该设置远程 push/pull 数据?
这是我在离远程私服不远很远的时候本地访问的方式:
git clone git@XXX.XXX.XX.X:REPODIR/repo_name.git
在这种情况下,XXX.XXX.XX.X 是本地 git-lab 实例在远程网络上的 IP。
是否有隧道进入远程网络并通过代理访问 gitlab 实例(请原谅我可能用错了这个词)。
谢谢。
好的,这主要要感谢@o11c,尽管这是我的发现,使我能够远程克隆我的存储库。
免责声明:ProxyJump(-J 请参阅 ssh 联机帮助页)是 shorthand 更现代的版本,但我无法让它工作——如果有人想更新他们的 ProxyJump 实现会有用的!
使用您的主要身份(这可以在 ~/.ssh 中,或者您可以手动引用它 -一)
ssh -ND 3131 nkunes@XXX.XXX.1.146 -i ../../keys/XXX-ssh &
然后我在 shell 中获取这个 bash 脚本我打算 运行 git 命令(注意 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