2011-09-23 8 views
6

Niedawno zainstalowałem Gitolite w środowisku Cygwin za pomocą kluczy SSH i wszystkiego innego.Gitolite nie aktualizuje pliku authorized_keys

Z powodzeniem zainstalowałem Gitolite i miałem dostęp do repozytorium gitolite-admin, skonfigurowałem i wstawiłem nowe klucze. Kiedy commit ted i push ed, wszystko było w porządku, dopóki nie zauważył, że nie ma dostępu do nowych repozytoriów lub gitolite-admin repozytorium znowu ...

Potem wszedł do mojego serwera przez ssh i zauważył, że gitolite usunięte wszystkie publicznie klucze w authorized_keys z wyjątkiem mojego domyślnego klucza SSH skonfigurowanego z SSH.

sprawdziłem, czy haki są rozmnożeniowego i wszystko wygląda w porządku - Gitolite stworzył nowe repozytoria i opracowywane nowe gitolite.conf

ja nie wiem, co brakowało - coś jest nie tak, ale nie mam pojęcia co to jest.

Ostatni raz widziałem, że plik ~/.gitolite/src/sshkeys-lint zarządza plikami authorized_keys, ale nie rozumiem bardzo dobrze języka skryptowego powłoki.

+0

Wygląda na to, że mógłbyś mieć problem z uprawnieniami na swoim pliku 'authorized_keys'? – Nic

+0

'authorizad_keys' ma 600 zezwoleń na użytkownika git, co jest w porządku, może przeczytać, ponieważ mogę uzyskać dostęp przez ssh, jeśli uruchomię' ~/.gitolite/src/gl-setup-authkeys --batch ~/.gitolite/keydir' .. .. 'authorized_keys' jest zaktualizowany i wszystko jest w porządku, problem polega na tym, że muszę to zrobić i nie uruchamia się automatycznie – Rafael

+0

@melee dzięki za sprawdzenie gramatyki. Spróbuję napisać lepiej moje pytania/odpowiedzi – Rafael

Odpowiedz

6

Po zatwierdzeniu, czy otrzymujesz następujący błąd w konsoli (komputera, z którego pochodzi użytkownik)?

remote: FIND: Parameter format not correct 
remote: FIND: Parameter format not correct 

Jeśli tak, problemem jest plik find.exe.

System Windows ma plik find.exe w folderze \ windows \ system32, a cygwin ma własny plik find.exe. Zwykle \ windows \ system32 pojawia się jako pierwsze w zmiennej środowiskowej "path".

Gitolite używa "find" w swoich skryptach, ale niestety find.exe z okien, a nie z cywin zostaje wykonane.

Teraz, aby rozwiązać problem, przejdź do zakładki Zmienne środowiskowe i dodaj katalog bin cygwin przed system32.

Po tym nie będziesz ponownie musiał stawić czoła problemowi "plik authorized_keys, który został wyczyszczony przy zatwierdzaniu".

Mam gitolite pracy na Windows Server 2008 maszyna z mirroring działa dobrze. (Skonfigurowałem to jako urządzenie slave, a master jest maszyną centOs.) Więcej informacji, Po zainstalowaniu sshd jako usługi systemu Windows ścieżka dostępu do cygwin będzie miała mniejsze znaczenie, ponieważ ścieżka systemu windows zostanie uruchomiona.

+0

Sprawdzę, czy przy pierwszej okazji, że mam – Rafael

+0

, napotykam ten sam dokładny problem .. Jednak dodanie cygwin do ścieżki nie działa dla mnie. Możliwe, że ta poprawka może wymagać ponownego uruchomienia komputera? Inna rzecz..czy nie byłoby mądrzej dodać do ścieżki "c: \ cygwin \ bin \ find.exe"? W ten sposób nie narażasz żadnych funkcji systemu na niebezpieczeństwo. – NickSuperb

+0

Dziękuję, zadziałało to dla mnie! Gitolite nie był w stanie zaktualizować pliku authorized_keys, ponieważ użył niewłaściwego find.exe, gdy wywołano go z deamon/usługi Cygwin SSHD (ale dlaczego?) Powinno to zostać naprawione - po wywołaniu z linii poleceń cygwin działało idealnie). @Nick: Tak, wygląda na to, że musisz ponownie uruchomić, aby usługa (lub konto użytkownika usługi?) Odkryła, że ​​zmienna PATH uległa zmianie ... (musiałem przynajmniej na XP) – Bjarke