我有:本地人,server1,server2。
我在server2上有Git存储库。但我和它联系不上。我可以用SSH连接到server1,然后用SSH连接到server2。
如何使用双SSH将提交推到server2?有可能吗?
发布于 2015-01-28 19:52:02
一种解决方案是准备SSH隧道 on网关主机(server1),并在本地端使用Git (您可能需要使用.ssh/options来配置端口)。
另一种是纯Git解决方案,使用带有双SSH的remote helper (您最好至少在网关上设置无密码的基于公钥的身份验证,否则您将不得不提供两次密码)。例如:
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 ...)作为名称。
然后,您将能够获取并推送到存储库的名称“原产地”。
发布于 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 )变得透明,就好像它可以直接访问一样。
https://stackoverflow.com/questions/28200914
复制相似问题