2012-05-15 10 views
6

Mam więc projekt (prywatne repozytorium), który ma wiele podmodułów (również prywatnych). Mam serwer hostowany na Amazon EC2, który pomieści projekt i chcę użyć naszego prywatnego repozytorium Github.Błąd odmowy uprawnień podczas korzystania z kluczy wdrażania Github

Wygenerowałem klucz ssh dla głównego projektu i dodałem go do kluczy wdrażania projektów. Wygenerowałem również dodatkowe klucze ssh dla każdego modułu podległego i dodałem je do kluczy do wdrażania.

Gdy próbuję i sklonować projektu (przy użyciu git @ GitHub), to nie działa:

Permission denied (publickkey). fatal: zdalny koniec zawiesił się niespodziewanie

Mam podwójne sprawdzanie każdego repo i ich kluczy rozmieszczenia i wszystko wydaje się poprawne. Czy jest jakiś inny mały krok, którego mi brakuje?

+0

Czy port 22 jest otwarty? Co mówi "ssh -vT git @ github.com"? - http://help.github.com/ssh-issues/ –

+0

Oto wyniki (poniżej) –

+0

OpenSSH_5.3p1, OpenSSL 1.0.0i-fips 19 kwietnia 2012 debug1: Odczyt danych konfiguracyjnych/etc/ssh/ssh_config debug1 : Stosowanie opcji * debug1: Łączenie z github.com [207.97.227.239] port 22. debug1: Nawiązano połączenie. –

Odpowiedz

6

Krótka odpowiedź: nie ma prostego sposobu na użycie kluczy rozmieszczania z prywatnymi podmodulami. Z mojego doświadczenia masz dwie opcje:

  1. nadal korzystać submodules ale zaprzestać używania wdrożyć klucze i zamiast użyć klucza poziomie konta pojedynczy SSH, który daje dostęp do wszystkich swoich prywatnych repozytoriów (łatwiejsze, mniej bezpieczne)
  2. Zatrzymaj za pomocą submodules, nadal używać wdrożyć kluczy i ręcznie git clone każde repozytorium przekazując klucza prywatnego SSH, który pasuje do klucza wdrożyć (trudniejsze, bardziej bezpieczny)

powodem tego jest git clone uruchamia połączenia SSH, które może wykorzystać tylko pojedynczy klucz prywatny SSH pod adresem czas (np. ~/.ssh/id_rsa). Używany klucz prywatny SSH musi być zgodny z kluczem wdrożenia repozytorium - a klucze rozmieszczenia muszą być unikalne dla każdego projektu. W przypadku klonu submodulowego używasz tylko jednego klucza prywatnego. Ten klucz może pasować do twojego projektu najwyższego poziomu, ale z pewnością zawiedzie w projektach podrzędnych z podanym przez ciebie błędem.

Mam nadzieję, że to pomoże ..

+1

Od 2 lat nie ma jeszcze lepszego rozwiązania? – aledalgrande

+3

OK, znalazłem: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth – aledalgrande