小弟由于跨平台开发需求,需要在不同平台调试代码。最近自己用RedHat6.4内置的git搭建了私有git服务器,通过ssh key提交代码。
服务器搭建好后,使用git clone git@192.168.2.20:data/test.git
进行第一次同步。Linux客户端一次成功,Windows却报错:
fatal:Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Linux客户端是Redhat6.4预装的,Windows客户端用的gitExtensions。
小弟不知道问题出在哪里?
使用ssh git@192.168.2.20
可以直接免密码登陆的,所以排除ssh的问题。照理说Windows下的git也是Git bash,命令都一样,为什么windows不能用。
补充一下:windows 版本win7.
刚刚在Windows的Git bash里用git remote -v
查看了一下远程库,是正确的显示:
origin git@192.168.2.20:data/test.git (fetch)
origin git@192.168.2.20:data/test.git (push)
那么现在问题是否仅仅是:连接/添加远程库成功,但是不能clone,目录/文件权限问题?
谢谢大家的回答。我已经找到root cause.
解决思路:既然Linux可以,Windows不行,那么就查找这两个系统的git客户端的差异。
经过排查,最终了解到Windows git客户端的ssh客户端默认使用的是putty,于是手动改成与Linux客户端一致的OpenSSH。问题解决。
使用
git remote -v
只是显示了当前git repository中配置的remote服务器信息,并不能说明在windows的git bash中可以访问远端代码库。你说在Linux下可以访问代码库,是在你的Redhat6.4中访问的吧?所以我大胆的猜测:
所以,建议你:
这样应该可以解决问题吧
既然是ssh,那么问题来了,你的服务器配置ssh没有,你的客户端生成了ssh-key没有,公钥保存到服务器没有?还有IP是否可以访问?
把这些问题一一检查一遍。