gpt4 book ai didi

Git clone from remote ssh repository - 在执行克隆命令之前更改远程网络上的机器

转载 作者:太空狗 更新时间:2023-10-29 12:57:51 24 4
gpt4 key购买 nike

我想从我公司的服务器上克隆一个 git 存储库到我的个人电脑上。从“外部”访问这些服务器的唯一方法是通过 ssh 登录到“machine1”

ssh user@machine1.company.xy

不幸的是,那台机器上没有安装 git。所以像这样的 git clone

git clone ssh://user@machine1.company.xy/path/to/repo <local-repo-path>

不会工作。我要做的是在通过“machine1”登录到网络后更改为安装了 git 的另一台机器“machine2”。所以为了让克隆工作,我必须执行像

这样的命令
ssh machine2

在实际执行 git 命令之前。有什么办法吗?可能是像预克隆 Hook 之类的东西?

是否有可能以某种方式将远程存储库打包到一个文件(补丁?)中,将该文件复制到本地机器上并从该文件克隆?

期待您的指点和建议!

最佳答案

您可以通过配置 ssh 代理命令来完成此操作。注意:这假设 netcat在代理服务器上可用;如果需要,您可以用 perl 或任何其他语言中的类似脚本替换 netcat。

将以下内容添加到您的~/.ssh/config,如果需要的话创建它:

Host machine1
User yourusername
HostName machine1.yourcompany.com

Host machine2
User yourusername
ProxyCommand ssh machine1 nc %h %p
HostName machine2.internal.network

现在您可以ssh machine2 并且它会自动通过machine1 建立隧道。这意味着使用 git 就像 git clone ssh://machine2/path 一样简单。

也可以使用 git bundle 将存储库捆绑到一个文件中。命令。不过,如果设置了正确的 ssh 代理,则不需要这样做。

关于Git clone from remote ssh repository - 在执行克隆命令之前更改远程网络上的机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4769986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com