15

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

在我使用的 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”的密码。有什么想法我在这里做错了吗?

4

1 回答 1

14

当你这样做时:

git clone git@gitserver:proj/myrepo.git

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

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

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

于 2013-06-06T19:49:06.070 回答