通过SSH隧道访问Git repo

时间:2013-06-06 11:08:14

标签: git ssh ssh-tunnel

我可以访问可以访问GIT服务器的SSH帐户,并且能够在此SSH登录中克隆/推送/拉取存储库。但是,我无法从其他地方访问此回购。

在我使用的SSH帐户上,

git clone git@gitserver:proj/myrepo.git

克隆回购。

我尝试使用

从另一台机器设置到git服务器的ssh隧道
ssh -L 3333:gitserver:22 userid@sshserver
git clone ssh://localhost:3333/proj/repo.git

但是我不断收到提示输入用户'git'的密码。我在这里做错了什么想法?

1 个答案:

答案 0 :(得分:13)

执行此操作时:

git clone git@gitserver:proj/myrepo.git

ssh客户端在本地主机('sshserver')上启动,并使用公钥认证使用'gitserver'进行身份验证。如果系统提示您输入用户'git'的密码,则表示公钥验证失败,ssh正在进入下一个方法,即密码验证。

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

要解决此问题,您需要授予该客户端访问相应密钥的权限。您可以在本地将其添加到〜/ .ssh,或将其加载到ssh代理中。