我可以访问可以访问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'的密码。我在这里做错了什么想法?
答案 0 :(得分:13)
执行此操作时:
git clone git@gitserver:proj/myrepo.git
ssh客户端在本地主机('sshserver')上启动,并使用公钥认证使用'gitserver'进行身份验证。如果系统提示您输入用户'git'的密码,则表示公钥验证失败,ssh正在进入下一个方法,即密码验证。
公钥验证失败的最可能原因是ssh客户端没有所需的私钥。我怀疑在这种情况下,验证为'git @ gitserver'所需的密钥位于sshserver:〜/ .ssh中,在这种情况下,当您尝试克隆repo时,在本地主机上启动的ssh客户端将无法使用它通过你的ssh隧道。
要解决此问题,您需要授予该客户端访问相应密钥的权限。您可以在本地将其添加到〜/ .ssh,或将其加载到ssh代理中。