Boo*_*per 14 git ssh ssh-tunnel
我可以访问可以访问GIT服务器的SSH帐户,并且能够在此SSH登录中克隆/推送/拉取存储库.但是,我无法从其他地方访问此回购.
在我使用的SSH帐户上,
git clone git@gitserver:proj/myrepo.git
Run Code Online (Sandbox Code Playgroud)
克隆回购.
我尝试使用其他机器设置到git服务器的ssh隧道,
ssh -L 3333:gitserver:22 userid@sshserver
git clone ssh://localhost:3333/proj/repo.git
Run Code Online (Sandbox Code Playgroud)
但是我不断收到用户'git'的密码提示.我在这里做错了什么想法?
gcb*_*son 13
当你这样做:
git clone git@gitserver:proj/myrepo.git
Run Code Online (Sandbox Code Playgroud)
一个ssh客户端在本地主机('sshserver')上启动,并使用公钥认证使用'gitserver'进行身份验证.如果系统提示您输入用户'git'的密码,则表示公钥验证失败,ssh正在进入下一个方法,即密码验证.
公钥验证失败的最可能原因是ssh客户端没有所需的私钥.我怀疑在这种情况下,验证为'git @ gitserver'所需的密钥位于sshserver:〜/ .ssh中,在这种情况下,当您尝试克隆repo时,在本地主机上启动的ssh客户端将无法使用它通过你的ssh隧道.
要解决此问题,您需要授予该客户端访问相应密钥的权限.您可以在本地将其添加到〜/ .ssh,或将其加载到ssh代理中.