小弟由於跨平台開發需求,需要在不同平台調試程式碼。最近自己用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是否可以存取?
把這些問題一一檢查一遍。