/ / Skąd git wie, kim jestem, kiedy używam ssh do logowania? - github, ssh

W jaki sposób git wie, kim jestem, kiedy używam ssh do logowania? - github, ssh

Skonfigurowałem logowanie SSH dla github przy użyciu następujących instrukcji i chociaż działa, nie mogę zrozumieć, dlaczego to działa: https://help.github.com/articles/generating-ssh-keys/

Moje rozumienie SSH jest następujące: klient tworzy parę kluczy, klient przekazuje klucz publiczny do serwera, a kiedy klient chce się zalogować, szyfruje wybraną przez serwer wiadomość, używając swojego klucza prywatnego, aby udowodnić, że tak naprawdę jest klientem.

Teraz: przesyłam mój klucz publiczny XXX do Github. Kiedy robię „ssh -T git@github.com”, Github musi wiedzieć, że próbuję zalogować się jako ja, aby mógł odszyfrować moją wiadomość za pomocą XXX, prawda? Więc ssh musi wysłać te informacje ... ale skąd ssh wie coś o Githubie lub jaka jest moja nazwa użytkownika? A jeśli mam kilka par kluczy - z którego klucza skorzystałby ssh?

Odpowiedzi:

3 dla odpowiedzi № 1

Po dodaniu klucza publicznego SSH do konta GitHub kojarzy się go z kontem GitHub.

Domyślnie polecenie ssh -T git@github.com wyszukuje id_dsa i id_rsa akta. Aby to potwierdzić, spróbuj ssh -T git@github.com -v.

Jeśli masz klucze powiązane z różnymi kontami github, musisz użyć -i, aby użyć różnych kont. ssh -T git@github.com -i /path/to/mykey


2 dla odpowiedzi nr 2

W skrócie:

  1. Klient SSH wysyła klucz publiczny do serwera
  2. Serwer znajduje twoje imię według klucza publicznego (unikatowego), ale musi zweryfikować, czy masz również klucz prywatny, dlatego wysyła ci wiadomość
  3. Twój klient podpisuje tę wiadomość za pomocą klucza prywatnego
  4. Serwer weryfikuje podpis, a jeśli jest prawidłowy, masz dostęp

Opiera się to na kryptografii klucza publicznego, a zwłaszcza technice podpisu cyfrowego (więcej informacji w Google).


0 dla odpowiedzi № 3

W scenariuszu z kontem wspólnym aplikacja obsługuje uwierzytelnianie / autoryzację.

Nie jestem pewien, czy Github go używa, ale jest jedno rozwiązanie do autoryzacji konta bez powłoki Gitosisi został użyty do dokładnie opisanego celu. Istnieją osobne pary kluczy dla każdego użytkownika. Jest to bardzo podobne do tego, jak Github robi rzeczy.

Podstawowe pojęcie o działaniu Gitosis (odroczenieuwierzytelnianie i autoryzacja gitosis) wyjaśniono na stronie readme aplikacji, ale mechanicy mogą wymagać przeglądu kodu źródłowego. Na podstawie pobieżnego badania wygląda na to, że mechanika tej metody polega głównie na przechwytywaniu git na serwerze.