通过SSH隧道访问Git repo

Access Git repo via SSH tunnel

我可以访问一个可以访问Git服务器的ssh帐户,并且可以在此ssh登录中克隆/推送/拉取repo。但是,我不能从其他地方访问此回购协议。

在我使用的ssh帐户上,

1
git clone git@gitserver:proj/myrepo.git

克隆回购。

我尝试从另一台计算机设置到Git服务器的ssh隧道,使用,

1
2
ssh -L 3333:gitserver:22 userid@sshserver
git clone ssh://localhost:3333/proj/repo.git

但是,我不断收到提示,要求输入用户"git"的密码。你知道我在这里做错什么吗?


当你这样做的时候:

1
git clone git@gitserver:proj/myrepo.git

ssh客户机正在本地主机("sshserver")上启动,并使用公钥身份验证通过"gitserver"进行身份验证。如果提示您输入用户"git"的密码,这意味着公钥身份验证失败,而ssh将进入下一个方法,即密码身份验证。

公钥认证失败的最可能原因是ssh客户机没有所需的私钥。在这种情况下,我怀疑认证为"git@gitserver"所需的密钥位于sshserver:~/.ssh中,在这种情况下,当您尝试通过ssh通道克隆repo时,本地主机上启动的ssh客户端将无法使用该密钥。

要解决这个问题,您需要给客户机适当的密钥访问权。您可以在本地将其添加到~/.ssh,或者将其加载到ssh代理中。