git push使用端口转发(SSH隧道)

我正在尝试访问托管在防火墙后面的群集上的GIT存储库。当我在校园(位于防火墙后面)时,我可以直接访问集群,并且可以从校园外通过SSH接入特定计算机,然后根据需要SSH到集群。 我尝试使用以下方法建立隧道:
sudo ssh -L 9418:cluster:9418 username@ssh.server
但是我仍然无法从我的机器上运行\“ git push \”。我知道我遗漏了一些东西,但无法弄清楚。 编辑: 我将〜/ .ssh / config修改为:
Host cluster
     NoHostAuthenticationForLocalhost  yes
     Hostname localhost
     Port 9418
并在运行git push时出错:
ssh_exchange_identification: Connection closed by remote host
fatal: The remote end hung up unexpectedly
    
已邀请:
        我猜想Git远程URL的主机名部分是
cluster
,而不是
localhost
git config remote.origin.url
的输出是什么?如果是这样的话:
git://cluster/repo.git
然后将其更改为:
git://localhost/repo.git
ssh端口转发的工作方式是ssh客户端在本地计算机上打开一个端口(在您的情况下为9418)并侦听连接。每当有应用程序连接到该端口时,您的ssh客户端都会要求ssh服务器(在您的情况下为)8 to)打开到隧道远程端的连接(在您的情况下为
cluster
端口9418)。发送到本地端口的所有数据都通过现有的ssh会话转发到ssh服务器。然后,ssh服务器将数据注入到与目标计算机的连接中。因此,从您的角度来看,您正在连接到本地计算机。从目标的角度来看,您正在从ssh服务器进行连接。 另外,您的ssh配置似乎不正确。该配置告诉您的客户端,每当您要ssh到名为
cluster
的计算机时,它都应连接到
localhost
端口9418。根据您提供的ssh命令,本地主机端口9418被转发到
cluster
\的端口9418。是
cluster
\的ssh服务器是否真的在端口9418而不是默认端口22上侦听?我猜“ 3”实际上是在端口9418上运行Git服务器,在这种情况下,您根本不需要修改ssh配置。     
        很奇怪,因为这通常应该起作用:这有帮助吗?您有ssh配置位吗?     

要回复问题请先登录注册