我有:本地,server1,server2。
我在server2上有Git存储库。但是我无法连接它。我可以使用SSH连接到server1,然后使用SSH连接到server2。
如何使用双SSH将提交推送到server2?可能吗?
一种解决方案是在网关主机(服务器1)上准备 SSH隧道 ,并在本地端使用Git(您可能需要使用它.ssh/options来配置端口)。
.ssh/options
另一个是纯Git解决方案,可将 ext:: 远程帮助程序与双SSH配合使用(您最好至少在网关上设置基于无密码的基于公钥的身份验证,否则您将必须输入两次密码)。例如:
ext::
local ~$ git clone \ "ext::ssh -t user@server1 ssh server2 %S 'repo'" repo Cloning into 'repo'... Checking connectivity... done.
%SGit将在此处将其扩展为适当的服务的全名,git-upload-pack以进行获取和git-receive- pack推送。-t如果登录到内部主机使用交互式身份验证(例如密码),则需要该选项。
%S
git-upload-pack
git-receive- pack
-t
请注意,您需要提供要下载的名称或目录,作为git clone命令的最后一个参数(repo在此处)到此处生成的存储库;否则,Git将使用命令(ssh ...)作为名称。
git clone
repo
ssh ...
然后,您将能够通过名称“ origin”来获取并推送到存储库。