我有权访问可以访问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'的密码。有任何想法我在这里做错了吗?
最佳答案
执行此操作时:
git clone git@gitserver:proj/myrepo.git
ssh客户端正在本地主机('sshserver')上启动,并使用公钥身份验证通过'gitserver'进行身份验证。如果系统提示您输入用户'git'的密码,则意味着公钥身份验证失败,并且ssh进入了下一个方法,即密码身份验证。
公钥认证失败的最可能原因是ssh客户端没有所需的私钥。我怀疑在这种情况下,需要以“git @ gitserver”身份验证的密钥位于sshserver:〜/ .ssh中,在这种情况下,当您尝试克隆存储库时,本地本地主机上启动的ssh客户端将无法使用它通过您的ssh隧道。
要解决此问题,您需要授予该客户端访问适当密钥的权限。您可以将其本地添加到〜/ .ssh,或将其加载到ssh代理中。
关于git - 通过SSH隧道访问Git存储库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16960567/