Access Git repo via SSH tunnel
我可以访问一个可以访问Git服务器的ssh帐户,并且可以在此ssh登录中克隆/推送/拉取repo。但是,我不能从其他地方访问此回购协议。
在我使用的ssh帐户上,
1 | git clone git@gitserver:proj/myrepo.git |
克隆回购。
我尝试从另一台计算机设置到Git服务器的ssh隧道,使用,
1 2 | ssh -L 3333:gitserver:22 userid@sshserver git clone ssh://localhost:3333/proj/repo.git |
但是,我不断收到提示,要求输入用户"git"的密码。你知道我在这里做错什么吗?
当你这样做的时候:
1 | git clone git@gitserver:proj/myrepo.git |
ssh客户机正在本地主机("sshserver")上启动,并使用公钥身份验证通过"gitserver"进行身份验证。如果提示您输入用户"git"的密码,这意味着公钥身份验证失败,而ssh将进入下一个方法,即密码身份验证。
公钥认证失败的最可能原因是ssh客户机没有所需的私钥。在这种情况下,我怀疑认证为"git@gitserver"所需的密钥位于sshserver:~/.ssh中,在这种情况下,当您尝试通过ssh通道克隆repo时,本地主机上启动的ssh客户端将无法使用该密钥。
要解决这个问题,您需要给客户机适当的密钥访问权。您可以在本地将其添加到~/.ssh,或者将其加载到ssh代理中。