windows下的Git客户端无法clone,Linux下的却可以。


小弟由于跨平台开发需求,需要在不同平台调试代码。最近自己用RedHat6.4内置的git搭建了私有git服务器,通过ssh key提交代码。

服务器搭建好后,使用 git clone [email protected]: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 [email protected] 可以直接免密码登陆的,所以排除ssh的问题。照理说Windows下的git也是Git bash,命令都一样,为什么windows不能用。

补充一下:windows 版本win7.
刚刚在Windows的Git bash里用 git remote -v 查看了一下远程库,是正确的显示:


 origin [email protected]:data/test.git (fetch)
origin [email protected]:data/test.git (push)

那么现在问题是否仅仅是:连接/添加远程库成功,但是不能clone,目录/文件权限问题?

git windows

蛋疼的可以啊 11 years, 5 months ago

既然是ssh,那么问题来了,你的服务器配置ssh没有,你的客户端生成了ssh-key没有,公钥保存到服务器没有?还有IP是否可以访问?
把这些问题一一检查一遍。

妹妹的秘密部位 answered 11 years, 5 months ago

使用 git remote -v 只是显示了当前git repository中配置的remote服务器信息,并不能说明在windows的git bash中可以访问远端代码库。

你说在Linux下可以访问代码库,是在你的Redhat6.4中访问的吧?所以我大胆的猜测:

  1. 你的Redhat6.4中的登录账号具有该代码库的访问权限
  2. 从你的Win7里没有对代码库的访问权限

所以,建议你:

  1. 检查Readhat6.4服务器,是否为git分配了有效的账号(一般就是git用户的账号密码)
  2. 是否为服务器端的git账号分配了充分的权限

这样应该可以解决问题吧

幻想艺术家 answered 11 years, 5 months ago

谢谢大家的回答。我已经找到root cause.
解决思路:既然Linux可以,Windows不行,那么就查找这两个系统的git客户端的差异。
经过排查,最终了解到Windows git客户端的ssh客户端默认使用的是putty,于是手动改成与Linux客户端一致的OpenSSH。问题解决。

人偶·厌夜 answered 11 years, 5 months ago

Your Answer