2009-07-23 66 views
4

我在遠程Ubuntu盒子上設置了Gitosis,我將其稱爲linuxserver作爲我的主機在以下命令中。我也使用Cygwin從Windows中連接。設置Gitosis,但不能克隆

我根據跟着指示:http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

我沒有問題,直到我需要Gitosis的管理員信息庫複製到我的本地機器

git clone [email protected]:gitosis-admin.git 

當我這樣做時,命令執行,但掛在那裏顯示什麼,直到我ctrl-c回到命令提示符。根本沒有消息顯示。

我很確定我的ssh密鑰設置正確,因爲使用「ssh linuxserver」登錄到我的常規帳戶可以很好地工作而不需要輸入密碼。

編輯:在這個週末我在家中設置了一個幾乎完全相同的Ubuntu盒子,並且在設置Gitosis時沒有問題。唯一的區別是我從OSX連接而不是Cygwin連接。我也發現,當使用與「Git擴展」提供的Bash Shell,我沒有問題,所以這個問題絕對似乎是某種Cygwin衝突。

編輯:只是一個更新,但發佈這個問題後大約一個月,我切換到Mercurial,發現我比git更喜歡它。感謝您的建議,但我不打算回到混帳嘗試其中任何一項。

+0

好吧,對我來說它從git bash(以前我試圖在cygwin上)工作。謝謝你的評論,否則我會打破我的頭! – 2012-11-13 14:48:57

回答

1

您在服務器上檢查了/var/log/messages嗎?
可能是用戶名「混帳」工作不正常:從comments of Gitosis

,如果你看一下authorized_key文件,你會看到,它沒有導入生成的密鑰系統的名字,但名字的服務器框。

示例:使用的「混帳」用戶名導致此地區的授權密鑰

[email protected]:/home/git/.ssh# cat authorized_keys command=」gitosis-serve [email protected]

更改用戶名後「的gitosis」它看起來像這樣

[email protected]:/home/gitosis/.ssh# cat authorized_keys command=」gitosis-serve [email protected]」, 

要解決我創建用戶gitosis的home目錄/ home/gitosis並再次運行git-init腳本。

sudo -H -u gitosis gitosis-init < /tmp/id_rsa.pub 
sudo chmod 755 /home/gitosis/repositories/gitosis-admin.git/hooks/post-update 

隨後,當地盒..

git clone [email protected]_SERVER_HOSTNAME:gitosis-admin.git 
+0

答案的第一部分完全不合格。你應該刪除它,以避免混淆新的讀者。第二部分似乎是正確的,但需要重新格式化。 – Novelocrat 2009-09-01 03:05:55

+2

@Novelocrat:我刪除了第一部分。我不確定你想要的「重新格式化」,因此我將此答案設置爲CW(社區Wiki):您可以編輯它並根據需要重新格式化它。 – VonC 2009-09-01 04:08:11

1

我發現these instructions提供你在做什麼,當你安裝的gitosis更多的解釋。可能幫助某人。

+0

感謝您的額外信息。我會嘗試一下,但是我已經轉向Mercurial(並且很喜歡它)。 – 2009-11-23 22:38:20

1

我和你有同樣的問題,我的問題的解決方案是將用戶「git」添加到服務器上ssh配置文件中允許的用戶。一個基本的監督 - 是的 - 但是,當我跟着同一個教程,並沒有提到這一步,可能很容易,其他人忘了添加git用戶到ssh配置文件。

1

我的電腦上有類似的問題。我上的Archlinux安裝的gitosis和運行

git clone ssh://[email protected]/oslab.git 

當它工作,但如果我改變本地主機IP 192.168.1.1一樣,它掛起。

3

我還建議在conf中設置調試選項。

[gitosis] 
loglevel = DEBUG 
0

如果任何人有過這個問題,並試圖從Cygwin環境的客戶端也有安裝MSYS的Git,檢查GIT_SSH環境變量的值上進行連接。它應該是未設置或等於/ usr/bin/ssh不plink.exe

我能夠ssh到服務器作爲git用戶(與gitosis腳本預期的拒絕),但我無法克隆。

我意識到發生了一些奇怪的事情,因爲git仍然警告主機不明,而直接的ssh連接沒有。通過MSYS的Git使用的膩子SSH客戶端 - 這時候我看着到輸出從strace的

strace git clone [email protected]:gitosis-admin.git | less 

搜索刺痛「SSH」,表明GIT_SSH指出plink.exe證實。不知道爲什麼plink.exe不起作用,但設置GIT_SSH =/usr/bin/ssh固定的東西。