首页
学习
活动
专区
圈层
工具
发布

双SSH Git
EN

Stack Overflow用户
提问于 2015-01-28 19:38:31
回答 2查看 1.4K关注 0票数 6

我有:本地人,server1,server2。

我在server2上有Git存储库。但我和它联系不上。我可以用SSH连接到server1,然后用SSH连接到server2。

如何使用双SSH将提交推到server2?有可能吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-28 19:52:02

一种解决方案是准备SSH隧道 on网关主机(server1),并在本地端使用Git (您可能需要使用.ssh/options来配置端口)。

另一种是纯Git解决方案,使用带有双SSH的remote helper (您最好至少在网关上设置无密码的基于公钥的身份验证,否则您将不得不提供两次密码)。例如:

代码语言:javascript
复制
local ~$ git clone \
   "ext::ssh -t user@server1 ssh server2 %S 'repo'" repo
Cloning into 'repo'...
Checking connectivity... done.

在这里,%S将被Git扩展为适当服务的全名,git-upload-pack用于获取,git-receive-pack用于push。如果登录到内部主机使用交互式身份验证(例如密码),则需要-t选项。

请注意,您需要将要下载到的名称或目录作为git clone命令的最后一个参数(此处为repo)提供给最终的存储库;否则,Git将使用命令(ssh ...)作为名称。

然后,您将能够获取并推送到存储库的名称“原产地”。

票数 6
EN

Stack Overflow用户

发布于 2015-01-28 19:55:39

看看ssh的ProxyCommand。通过在ssh配置文件中添加一个节,如

Host server2 ProxyCommand ssh -q server1 nc -q0 %h 22

您应该能够使用git与回购和server2。注意:--这要求nc在server1上可用。

该解决方案使通过ssh访问server2 (例如使用git )变得透明,就好像它可以直接访问一样。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28200914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档