通过SSH隧道访问Git仓库

15

我可以访问一个SSH帐号,该帐号可以访问GIT服务器,并且我可以在此SSH登录中克隆/推送/拉取repo。但是我无法从其他地方访问这个repo。

在我使用的SSH帐号上,

git clone git@gitserver:proj/myrepo.git

克隆仓库。

我尝试使用以下命令从另一台机器设置ssh隧道到git服务器:

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

然而我一直被提示输入用户“git”的密码。这里有什么错误吗?

1个回答

14

当您执行此操作时:

git clone git@gitserver:proj/myrepo.git

本地主机上的SSH客户端正在启动(“sshserver”),并使用公钥验证通过“gitserver”进行身份验证。 如果提示要求输入用户“git”的密码,则表示公钥验证失败,SSH将继续执行下一个方法,即密码验证。
公钥验证失败的最可能原因是SSH客户端没有所需的私钥。 我怀疑在这种情况下,身份验证为“git@gitserver”的密钥驻留在sshserver:〜/ .ssh中,在这种情况下,当您尝试通过SSH隧道克隆存储库时,它将不可用于在本地主机上启动的SSH客户端。
为解决此问题,您需要向该客户端授予访问适当密钥的权限。 您可以将其添加到~ / .ssh中,也可以将其加载到SSH代理中。

谢谢,那个方法起作用了(还使用了https://dev59.com/82455IYBdhLWcg3wD_sB)来设置一个配置文件以帮助解决问题。 - Bootstrapper
我不确定你的链接是否与引导程序相关 ;) - Jamie Hutber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接